① android怎么修改系统dialog风格
1、编写一个文本样式。
DIALOG的标题是一个textview,在sytles.xml中,添加如下代码来设置你自己的文本样式:
?
<style name="DialogWindowTitle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">@color/font_dark_grey</item>
</style>
2、设置对话框的标题主题。
上面的标题文本并不能直接设置为对话框的标题样式。 我们还需要编写一个表示标题的主题的style,在这里指定标山瞎题的文本样式。代码如下:
?
<style name="DialogWindowTitle.DeviceDefault">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@style/DialogWindowTitle</item>
</style>
3、设置对话框主题。
接下来,我们编写我们的对话框主题,在这里指定标题的主题。由于一些属性并不是public的,所以我们需要继承自原来的某个style,代码如下:
?
<!--Dialog主题-->
<style name="Theme.DeviceDefault.Dialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
</style>
4、自定义App的主题。
接下来,我们需要在我们的App theme中指定我们的对话框使用这种主题,所以需要定义一个App theme。同样由于App theme的许多属性并不是public的(比如下面要提到的标题下面的那条蓝线),所以我们要继承自一个原生的style。这里我根据程序需要选择了Theme.Holo.Light.NoActionBar,代码如下:
?
<style name="ParkingTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
<item name="android:dialogTheme">@style/Theme.DeviceDefault.Dialog</item>
</style>
5、指定App主题。
最后一步,我们需要在AndroidManifest.xml文件中,指定我们的app主题。这步很简单,只需要在application标签中指定android:theme的值即可,如下:
?
android:theme="@style/ParkingTheme"
不过这只是指定了Dialog的主毁丛题。如果是通过AlertDialog创建出来的对话框,主题还是原来的。所以我们还需要以下步骤。
7、编写AlertDialog主题。
我们无法直接继承系逗余空统主题里的AlertDialog的style。如把parent指定为Theme.DeviceDefault.Dialog.Alert,Theme.Holo.Dialog.Alert,Theme.DeviceDefault.Light.Dialog.Alert或Theme.Holo.Light.Dialog.Alert,都会导致编译不过。所以我们需要继承自Dialog的style。在这里我以Theme.Holo.Light.Dialog为例,代码如下:
<!--AlderDialog主题-->
<style name="Theme.DeviceDefault.Dialog.Alert" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>
在这里我参考了原生的alertDialog的style,设定了窗口背景为透明,以及windowContentOverlay为null这两个重要属性,否则你会看到在AlertDialog下面还有一层对话框的背景,或者是对话框的背景遮住了所有内容这样的问题存在。
8、指定AlertDialog的主题。
我们需要在第4步所说的自定义的AppTheme中,添加一行代码来指定要使用的AlertDialog的style,代码如下:
?
<item name="android:alertDialogTheme">@style/Theme.DeviceDefault.Dialog.Alert</item>
9、修改标题下面的蓝色线。
如果你修改了对话框的主题颜色,那么标题下面的蓝色的线肯定会让你很郁闷。如果对话框较少,你可以选择隐藏标题,然后自定义一个包含了标题的View来设置为对话框的内容。但是如果你的对话框有许多种,而且本来都是可以调用原来的API就来生成的话,要去定义这么多个带标题的view,这样做下来心里肯定是很纠结的。
标题下面的蓝色的线,并不是在Dialog或AlertDialog中设置或通过它们的style中定义的。它是定义在各种风格的dialog的layout当中,然后再在AppTheme里面指定dialog的对应属性。遗憾的是,目前我看到这几个相关属性还不是public的,不能自己设置,所以只有通过java代码来实现了。
表示这条蓝色的线的叫做titleDivider,我们可以通过getResources()的API来获取它的IP,然后设置颜色。代码如下:
?
public static final void dialogTitleLineColor(Dialog dialog, int color) {
Context context = dialog.getContext();
int divierId = context.getResources().getIdentifier("android:id/titleDivider", null, null);
View divider = dialog.findViewById(divierId);
divider.setBackgroundColor(color);
② 安卓开发中 怎么获取theme
在Android 开发中全屏显示的方式有帆拿段三种,分别介绍如下: 1、在Activity中进行设置,代码如下: getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 此行代码必须写在Activity指定布局文件之前,否则会报错误。 2、在android项目的主配置文件的application的属性中设置,设置方式一: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 3、在android项目的主态誉配置文件的application的属性中设置,设置方敏尘式二: android:theme="@style/fullscreem"。
③ Android中style和theme的区别
Theme 和Style资源,桐滚将一些通用的属性提取出来,方便使用。
相同:
Theme和Style位于values文件夹下styles.xml下,格式相同。
[java] view plain
<style name="MyTransparent">
<item name="android:windowBackground">@color/transparent_background</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
<item name="Android:windowNoTitle">?android:windowIsTranslucent</item>其中 问号表示引用本主题中已经定义过的资源的值。
在需要使用的时候调用
[java] view plain
<EditText
android:id="@+id/nameEdit"
<span style="color:#ff0000;"> style="@style/LoginOrRegisterEditStyle"</span>
android:hint="@string/input_real_name"
android:layout_below="@id/tipHead"
android:layout_marginTop="20dp" />
不同:
Theme在AndroidManifest.xml中德Application节点或者Activity节点设置android:theme,或者在对应Activity中通过代码设置setTheme(),影响整个应用或者一个Activity.
Style一般是在布局中的View中设置。搜早影响单个View,如EditText,TextView等等。
如果主题和样式属性有冲突,样式局漏余的属性高于主题。
如果需要使用系统自带的主题
[java] view plain
android:theme=<span style="color:#ff0000;">"@android:style</span>/Theme.Light.NoTitleBar"
④ 在android中怎样设计theme
在style中定义,也可以在values文件中谈档者定一个theme.xml,然后在这个xml中定义。蠢迹
哪需要用直接引用含薯就OK
⑤ android怎样在代码中设置颜色
通常来说,每个界面都对应一个activity。而在activity的View视图中,可以在最外层容器去设置背景图片或背景颜色。
在xml布局里:
android:background="@drawable/img1"
或者
android:background="@color/white"
在java代码里,也可以设置
layout.setBackgroundColor(R.color.white);
layout.setBackgroundDrawable(drawable);
layout.setBackgroundResource(R.drawable.img1);
再者,系统默认的背景色是能过theme来控制的,就是说创建一个activity的背景色,如果在
AndroidManifest.xml文件里有设置如下:
android:theme="@android:style/Theme"
这样设置activity的主题样式,"@android:style/Theme"一般是系统默认的。这个不单是背景色,还有其它的样式,具体可以在网上查一下android:theme的用法。
而"@android:style/Theme"的背景色就是黑色。
⑥ 安卓怎么修改系统“DIALOG”风格
具体步骤如下:
1编写一个文本样式。
DIALOG的标题是一个textview,在sytles.xml中,添加如下代码来设置你自己的文本样式:
<style name="DialogWindowTitle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">@color/font_dark_grey</item>
</style>
2设置对话框的标题主题。
上面的标题文本并不能直接设置誉笑缓为对话框的标题样式。 我们还需要编写一个表示标题的主题的style,在这里指定标题的文本样式庆模。代码如下:
<style name="DialogWindowTitle.DeviceDefault">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@style/DialogWindowTitle</item>
</style>
3设置对话框主题。
接下来,我们编写我们的对话框主题,在这里指定标题的主题。由于一些属性并不是public的,所以我们需要继承自原来的某个style,代码如下:
<!--Dialog主题-->
<style name="Theme.DeviceDefault.Dialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
</style>
4自定义App的主题。
接下来,我们需要在我们的App theme中指定我们的对话框使用这种主题,所以需要定义一个App theme。同样由于App theme的许多属性并不是public的(比如下面要提到的标题下面的那条蓝线),所以我们要继承自一个原生的style。这里我根据程序需要选择了Theme.Holo.Light.NoActionBar,代码如下:
<style name="ParkingTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
<item name="android:dialogTheme">@style/Theme.DeviceDefault.Dialog</item>
</style>
5指定App主题
我们需要在升颤AndroidManifest.xml文件中,指定我们的app主题。这步很简单,只需要在application标签中指定android:theme的值即可,如下:
android:theme="@style/ParkingTheme"
6编写AlertDialog主题。
我们无法直接继承系统主题里的AlertDialog的style。如把parent指定为Theme.DeviceDefault.Dialog.Alert,Theme.Holo.Dialog.Alert,Theme.DeviceDefault.Light.Dialog.Alert或Theme.Holo.Light.Dialog.Alert,都会导致编译不过。所以我们需要继承自Dialog的style。在这里我以Theme.Holo.Light.Dialog为例,代码如下:
<!--AlderDialog主题-->
<style name="Theme.DeviceDefault.Dialog.Alert" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>
7指定AlertDialog的主题。
我们需要在第4步所说的自定义的AppTheme中,添加一行代码来指定要使用的AlertDialog的style,代码如下:
<item name="android:alertDialogTheme">@style/Theme.DeviceDefault.Dialog.Alert</item>
8修改标题下面的蓝色线。
表示这条蓝色的线的叫做titleDivider,我们可以通过getResources()的API来获取它的IP,然后设置颜色。代码如下:
public static final void dialogTitleLineColor(Dialog dialog, int color) {
Context context = dialog.getContext();
int divierId = context.getResources().getIdentifier("android:id/titleDivider", null, null);
View divider = dialog.findViewById(divierId);
divider.setBackgroundColor(color);
这行代码对于自定义的Dialog,可以在setContentView之后调用。但是对于AlertDialog,必须在show()方法被调用之后才可以去调用,否则会报错。
⑦ 如何在 Android 应用程序中使用自定义主题
该指南介绍了Android的holo主题,并提供了一个既有现代感又独特的用户体验。从今年的谷歌开发者大会谈论的“ 成功的Android设计”上,我们得到了一些重要的心得:
对于这篇文章,我假设你已经有“成功设计”的部分,所以让我们走进更高一层的“应用涅槃”。更具体地说,我将描述一些有用的模式应用到你的应用程序中,让你的应用更具品牌化。
简单样式 在Android中,定义外观最简单的方式是直接设置属性在视图对象上。由于要对整个应用程序设置样式,这种方法就显得不是很方便了。因此,我们可以创建样式来绑定视图属性。但要注意的是,样式只能设置在xml里。这意味着,我们在创建/加载视型备中图的时候,只能一次设置一个样式。下面是如何在res/values/styles.xml文件中给TextView设置属性的示例。
<style name="CustomText" parent="@android :style/TextAppearance.Medium"> <item name="android:textSize">20sp</item> <item name="android:textColor">#008</item> </style> 我们引用@style/CustomText样式应用在我们的layout.xml文件中。该样式引用了一个父样式 @android:style/TextAppearance.Medium。由于开始样式引自android: 命名空间,那么我们这个样式默认也随android平台。
创建主题绑定样式 假设我们要改变我们所有TextView的文字大小和颜色,并且不需要明确设置每一个TextView。这是一个非常常见的情况,幸运的是,Android提供了一个非常强卜山大的主题机制。从本质上讲,主题就是样式资源本身,使用“key”指向具体的样式。一个视图对象基于这个key可以查看到具体的样式。下面是一个简单的例子,在res/values/themes.xml文件:
<style name="Theme.MyApp" parent="滚锋@android :style/Theme.Holo"> <item name="android:textAppearance">@style/CustomText</item> </style> 如上所述,主题是样式资源本身,所以我们声明一个Theme.App继承自Android平台提供的holo主题。我们将我们的CustomText样式指定到android:textAppearance属性。属性就是一个预定义的“变量”,它可以被其他资源元素引用。事实上,它也可以创建自定义属性在res/values/attr.xml文件。
现在有趣的事情来了。我们的主题Theme.MyApp不仅可以通过AndroidManifest.xml的设置应用到Activity上,它也可以在运行时在代码中设置。你将不得不重新启动当前Activity(或使用ContextWrapper应用UI的主题部分),但它使主题更加动态。
final Resources.Theme theme = context.getTheme(); TypedArray a = theme.obtainStyledAttributes(attrs, com.android.internal.R.styleable.TextViewAppearance, defStyle, 0); int ap = a.getResourceId(com.android.internal.R.styleable.TextViewAppearance_textAppearance, -1); TypedArray appearance = theme.obtainStyledAttributes(ap, com.android.internal.R.styleable.TextAppearance); textColor = appearance.getColorStateList(attr); 该代码片段显示了文本的颜色是如何从当前主题的TextAppearance属性提取出来的。通过阅读这段初始化代码,我们通常可以知道什么样的元素可以被配置。
我们必须意识到,虽然不同的Android版本应用不同的属性,但Android高版本通常支持低版本的属性,新属性显然不被低版本识别。我希望我们会很快得到更新检查,这样就能引用Android新版本推出的主题属性。
总结 Android4.0的主题变得更加强大了,98%属性你可以通过代码设置,并且现在可以在主题化之前设置样式。使用自定义主题时,除了有更大的视觉灵活性,你还可以减少在XML布局和Java代码中的混乱,完全可以投入到应用程序的逻辑。
⑧ Android设置Activity背景为透明style的方法
1.设置Theme.Translucent
只需要在Manifest中需要透明的Activity内设置theme为以上任意一个就可以了
2.在Activity的layout.xml文件中,设置父布局背景透明度(不设置背景色默认全透明),不设置透明度看不出效果,如果子控件设置了背景色且不透明,则子谈毁控件所占位置无透明效果。
3.效果图
1.使用自定义的Theme
2.在res-values-styles.xml中添加MyTransparent
3.在res-values-colors.xml中添加透明颜色值含闹备
4.以上步骤设置完成和方法一有同样的效果,省去了在layout.xml设置透明背景色(如果在布局中页设置弯陵了背景色,将以布局中的为准)。方法二相对灵活一点,可以多设置一些属性,如模糊背景:
⑨ Android 的style和theme
例子
Theme是针对窗体级别的,改变窗体样式;
Style是针对窗体元素级别的,改变指袜仿定控件或者Layout的样式
简单的说就是Theme里面有包含了好多好多Style
常用于Toolbar下
比如
android:theme="@style/AppTheme.AppBarOverlay设置了Toolbar的主题
app:popupTheme="@style/AppTheme.PopupOverlay"设置了Toolbar节点下的view的主题
默认瞎好简情况下我们使用theme为android:Theme.Holo.Light.DarkActionBar那么ActionBar文字是白的,ActionBar Overflow弹出的是黑底白字,如果需求是白磨裤底黑字那么只要设置toolbar的app:popupTheme="ThemeOverlay.AppCompat.Light"
附上一张官方的
装载自 关于Android的style和theme