我想为水平ProgressBar编写自定义样式.
如果要添加水平ProgressBar,则需要引用系统样式,如下所示:
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
我为它添加了一些自定义样式,添加了一些父级,但由于已经有一个样式引用使其具有水平形状,我需要继承此系统样式.
我试过这样的:
<style name="itemViewProgressBar" parent="@android:attr/progressBarStyleHorizontal">
<item name="android:paddingLeft">@dimen/ivProgressBarPaddingLeft</item>
<item name="android:paddingRight">@dimen/ivProgressBarPaddingRight</item>
<item name="android:paddingTop">@dimen/ivProgressBarPaddingTop</item>
<item name="android:paddingBottom">@dimen/ivProgressBarPaddingBottom</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在ProgressBar中我引用它是这样的:
<ProgressBar
android:id="@+id/progressBar1"
style="@style/itemViewProgressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)
样式xml没有给我任何错误,所以引用似乎工作正常.但它仍然对ProgressBar没有任何影响.它看起来像我离开parent属性一样(即它显示循环ProgressBar).
我当然可以在ProgressBar元素本身中定义所有填充,并在ProgressBar中引用系统样式,如默认值.但更优雅的方式应该是使用自定义样式,特别是因为我需要经常重复使用它.
有关如何实现系统水平ProgressBar样式和自定义样式的自定义填充的任何想法?
我一直关注Android开发人员培训的myfirstapp指南,但我遇到了一个问题,他们没有正确解释如何定义颜色.
他们提到要创建自定义主题,您可以声明文本颜色:
的themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:textColor">@style/MyActionBarTitleText</item>
<item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item>
</style>
<!-- ActionBar styles -->
<style name="MyActionBar"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
</style>
<!-- ActionBar title text -->
<style name="MyActionBarTitleText"
parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/actionbar_text</item>
</style>
<!-- ActionBar tabs text styles -->
<style name="MyActionBarTabText"
parent="@android:style/Widget.Holo.ActionBar.TabText">
<item name="android:textColor">@color/actionbar_text</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
他们没有提到如何指定@color/actionbar_text,但常识(以及一些谷歌搜索)表示值包中需要colors.xml文件:
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="actionbar_text">#ff355689</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
但是,在尝试运行应用程序时,它会出错:
Process: com.example.myfirstapp, PID: 25997
java.lang.RuntimeException: Unable …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用"layout-sw1080dp"文件夹为1080dp和其他人创建不同的布局,但似乎android studio完全忽略它并从默认布局文件夹加载.
我尝试了另一种方法 - 使用值-sw1080dp设置不同的尺寸,但仍然没有!
为不同屏幕尺寸编写不同布局的正确方法是什么?
我想让我的应用程序具有多种样式。
该样式更改按钮样式、文本视图颜色和布局背景颜色。
我在 xml 文件中有我的按钮样式。
这是我的代码:style.xml (v21)
<style name="ThemeIndigo" parent="@android:style/Theme.Material.NoActionBar">
<item name="android:colorPrimary">@color/indigo</item>
<item name="android:colorPrimaryDark">@color/indigo</item>
<item name="android:navigationBarColor">@color/indigo_dark</item>
<item name="android:buttonStyle">@drawable/indigo_button</item>
<item name="android:background">@drawable/indigo_button</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这会更改此布局上所有内容的背景颜色。
如何让我的样式只改变按钮的颜色?
请帮忙。谢谢。
(抱歉英语不好;)
工具栏ActionMode似乎忽略了我在lollipop之前的设备上的风格.
这是我的风格:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<!--We will be using the toolbar so no need to show ActionBar-->
<item name="windowActionBar">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="android:textColorPrimary">#DD000000</item>
<item name="android:textColorSecondary">#8A000000</item>
<!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette-->
<!-- colorPrimary is used for the default action bar background -->
<!-- Set AppCompat’s color theming attrs -->
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/secondary</item>
<item name="colorAccent">@color/accent</item>
<item name="android:actionModeStyle">@style/Widget.ActionMode</item>
<item name="android:actionModeBackground">@drawable/toolbar_action_background</item>
<item name="android:actionModeCloseDrawable">@drawable/ic_arrow_back_white_24dp</item>
</style>
<style name="Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode">
<item name="android:background">@drawable/toolbar_action_background</item>
<item name="android:titleTextStyle">@style/TitleTextStyle</item>
</style>
<style name="TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">#fff</item>
</style> …Run Code Online (Sandbox Code Playgroud) 我的应用程序的最低 SDK 为 16 并且我正在使用AppCompatActivity,因此我需要将其Theme.AppCompat.x用作我的基本主题。
我知道如果我调用getSupportActionBar().setElevation(0),我可以删除每个活动的操作栏下的阴影。
我想要做的是通过使用主题来应用这种效果。有什么想法可以实现这一目标吗?
我的主要风格看起来像这样,应用程序使用@style/AppTheme.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/primary_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我有一个android.support.v4.preference.PreferenceFragment,它使用以下PreferenceScreen:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="Cat1"
android:key="pref_cat1">
<ListPreference
android:key="pref_list1"
android:title="@string/pref_list1"
android:dialogTitle="@string/pref_list1"
android:entries="@array/pref_list1_entries"
android:entryValues="@array/pref_list1_entries"
android:defaultValue="@string/pref_list1_default"/>
<EditTextPreference
android:key="pref_text2"
android:title="@string/pref_text2"
/>
</PreferenceCategory>
<PreferenceCategory
android:title="Cat2"
android:key="pref_cat2">
<EditTextPreference
android:key="pref_text3"
android:title="@string/pref_text3"
/>
</PreferenceCategory>
Run Code Online (Sandbox Code Playgroud)
显示PreferenceFragment时,会在首选项之间显示一些分隔符,但也会在每个PreferenceCategory的名称下显示.虽然我可以通过访问PreferenceFragment的ListView轻松修改首选项之间的分隔符颜色,但这对PreferenceCategory分隔符没有影响.
如何改变这种分隔线的颜色?
android android-preferences divider android-styles preferencefragment
我想更改searchview的边框颜色.现在它变得透明了.我尝试给它造型但没有任何效果.
SearchView.xml
<LinearLayout
android:id="@+id/linear1"
android:background="@android:color/white"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<android.support.v7.widget.SearchView
android:layout_width="300dp"
android:layout_height="wrap_content"
android:id="@+id/searchView"
android:background="@android:color/white"
android:layout_marginTop="10dp"
style="@style/CitySearchView"
android:layout_weight="0.9"
android:layout_marginLeft="10dp"/>
Run Code Online (Sandbox Code Playgroud)
风格= "@风格/ CitySearchView"
<style name="CitySearchView" parent="Widget.AppCompat.Light.SearchView">
<item name="searchIcon">@drawable/blue_search_bar</item>
<item name="colorControlActivated">@color/labelColorHighligh</item>
<item name="colorControlNormal">@color/backgroud_user</item>
<item name="queryBackground">@color/labelColorHighligh</item>
</style>
Run Code Online (Sandbox Code Playgroud)
style.xml
<LinearLayout
android:id="@+id/linear1"
android:background="@android:color/white"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<android.support.v7.widget.SearchView
android:layout_width="300dp"
android:layout_height="wrap_content"
android:id="@+id/searchView"
android:background="@android:color/white"
android:layout_marginTop="10dp"
style="@style/CitySearchView"
android:layout_weight="0.9"
android:layout_marginLeft="10dp"/>
Run Code Online (Sandbox Code Playgroud) android android-view searchview android-search android-styles
如果我想设置全局textViewStyle并保持与AppCompat的向后兼容性,我应该使用哪种父样式?我找不到像Widget.AppCompat.TextView这样的东西:
<style name="Base_AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:textViewStyle">@style/GlobalTextViewStyle</item>
</style>
<style name="GlobalTextViewStyle" parent="?????">
<item name="android:textAppearance">@style/TextAppearance.AppCompat.Medium</item>
</style>
Run Code Online (Sandbox Code Playgroud) android textview android-appcompat android-support-library android-styles
android ×10
android-styles ×10
xml ×2
android-view ×1
datepicker ×1
divider ×1
java ×1
layout-xml ×1
searchview ×1
textview ×1