Android中样式及主题

简介:

Android应用程序中不可避免的需要使用的样式和主题,样式指定一般指定View的高度、字体、字体颜色、背景,Android里的样荐定义在Style.xml文件里。主题也是一种样式,只不过它是应用在整个Activity或application,而不只是View。两者基本相同,最大的区别就是作用的范围不一样。样式针对的是单个的View控件,主题的范围更广,还是直接开始动手写吧.

自定义的样式及主题

最简单新建一个Android项目都会有一个TextView内容是HelloWorld:

 

1
2
3
4
<TextView
     android:layout_width= "wrap_content"
     android:layout_height= "wrap_content"
      android:text= "@string/hello_world"  />

 

 这个时候我们可以将这些属性写在/res/values/styles.xml中新建的样式中:

1
2
3
4
5
6
<style name= "content_mystyle" >
     <item name= "android:layout_width" >wrap_content</item>
     <item name= "android:layout_height" >wrap_content</item>
     <item name= "android:textColor" >#3A5FCD</item>
     <item name= "android:textSize" >20sp</item>
</style>

  调用:

1
2
3
<TextView
      style= "@style/content_mystyle"
      android:text= "@string/hello_world"  />

 效果如下:

自定义theme:

1
2
3
<style name= "theme_mytheme" >
       <item name= "android:background" ># 080808 </item>
   </style>

Application中调用:

1
2
3
4
5
6
7
   <application
         android:allowBackup= "true"
         android:icon= "@drawable/ic_launcher"
         android:label= "@string/app_name"
         android:theme= "@style/theme_mytheme"
          >
.....

效果如下:

 

系统样式和主题扩展

重新定义个Activity,里面只需要方一个ProgressBar就行,上面的样式是常见的,如果像对话框,进度条这种,有些样式自己也不是很明白的话,直接去sdk中找出来重写一下:

果是修改单个样式直接去styles.xml中找到即可,修改主题的话去themes中找到即可:

ProgressBar原有的样式如下:

1
2
3
4
5
6
7
8
9
10
<style name= "Widget.ProgressBar" >
       <item name= "android:indeterminateOnly" > true </item>
       <item name= "android:indeterminateDrawable" > @android :drawable/progress_medium_white</item>
       <item name= "android:indeterminateBehavior" >repeat</item>
       <item name= "android:indeterminateDuration" > 3500 </item>
       <item name= "android:minWidth" >48dip</item>
       <item name= "android:maxWidth" >48dip</item>
       <item name= "android:minHeight" >48dip</item>
       <item name= "android:maxHeight" >48dip</item>
   </style>

  重写:

1
2
3
4
5
6
7
8
9
10
<style name= "progressBar_myStyle" >
        <item name= "android:indeterminateOnly" > true </item>
        <item name= "android:indeterminateDrawable" > @drawable /progress_medium_white</item>
        <item name= "android:indeterminateBehavior" >repeat</item>
        <item name= "android:indeterminateDuration" > 3500 </item>
        <item name= "android:minWidth" >60dip</item>
        <item name= "android:maxWidth" >60dip</item>
        <item name= "android:minHeight" >60dip</item>
        <item name= "android:maxHeight" >60dip</item>
    </style>

  将progress_medium_white拷贝过来,重写:

 

 

代码如下:

1
2
3
4
<animated-rotate xmlns:android= "http://schemas.android.com/apk/res/android"
     android:drawable= "@drawable/ic_launcher"
     android:pivotX= "50%"
     android:pivotY= "50%" />

布局中调用

1
2
3
4
<ProgressBar
     style= "@style/progressBar_myStyle"
     android:layout_width= "wrap_content"
     android:layout_height= "wrap_content" />

效果如下:

 

主题的就很简单,定义了两个主题,全屏没有标题:

1
2
3
4
5
6
7
8
9
<style name= "test_NoTitleBar" >
     <item name= "android:windowFullscreen" > true </item>
     <item name= "android:background" >#FF1493</item>
     <item name= "android:windowNoTitle" > true </item>
</style>
 
    <style name= "test_child_NoTitleBar"  parent= "@style/test_NoTitleBar" >
     <item name= "android:background" >#FF0000</item>
</style>

 给Activity的主题赋值,效果如下:

周末看博客的都大有可为,大家周末愉快~

本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4101255.html,如需转载请自行联系原作者

相关文章
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
457 1
|
1月前
|
存储 消息中间件 人工智能
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
87 11
【05】AI辅助编程完整的安卓二次商业实战-消息页面媒体对象(Media Object)布局实战调整-按钮样式调整实践-优雅草伊凡
|
5月前
|
搜索推荐 Android开发 开发者
Android星级评分条RatingBar样式的改变及出现问题的解决方法
本文介绍了自定义 RatingBar 的实现方法,通过布局文件、layer-list 样式文件和 style 文件的配置完成个性化星星评分效果。关键步骤包括:1) 在布局文件中添加 RatingBar 并引用样式;2) 创建 layer-list 文件定义背景、次级进度和进度图片;3) 在 style 文件中定义 RatingBar 样式并应用到布局中。可能出现的问题及解决办法:直接报错通常是图片素材过大,调整尺寸即可;星星流眼泪是图片形状问题,需将图片置于透明圆形或正方形内重新组合。附有具体代码示例,方便开发者快速上手实现自定义评分组件。
207 12
|
5月前
|
Android开发 开发者
Android中Dialog位置+样式的设置
本文介绍了在Android开发中如何设置Dialog的位置和样式。通过自定义`MyDialog`类,可以灵活调整Dialog的显示位置,例如将其固定在屏幕底部,并设置宽度匹配父布局。同时,文章还展示了如何模仿Android原生Dialog样式,通过定义`MyDialogStyle`去除标题栏、设置背景透明度、添加阴影效果以及配置点击外部关闭等功能,从而实现更加美观和符合需求的Dialog效果。代码示例详细,便于开发者快速上手实现。
356 2
|
5月前
|
XML 搜索推荐 Android开发
Android改变进度条控件progressbar的样式(根据源码修改)
本文介绍了如何基于Android源码自定义ProgressBar样式。首先分析了系统源码中ProgressBar样式的定义,发现其依赖一张旋转图片实现动画效果。接着分两步指导开发者实现自定义:1) 模仿源码创建一个旋转动画XML文件(放置在drawable文件夹),修改图片为自定义样式;2) 在UI控件中通过`indeterminateDrawable`属性应用该动画。最终实现简单且个性化的ProgressBar效果,附带效果图展示。
329 2
|
5月前
|
Android开发
Android控件样式的抽取(小提及快捷方式)
在Android开发中,若多个控件样式重复,可抽取公共部分以简化代码。例如对EditText提取样式,通过编辑`styles.xml`实现复用。为提高效率,Android Studio提供自动提取Style功能:右键点击控件样式选项,选择“Style...”,勾选需要提取的属性后确认,即可快速生成样式代码,显著提升开发便利性。
173 2
|
Android开发 开发者
Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。
【6月更文挑战第26天】Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。要更改主题,首先在该文件中创建新主题,如`MyAppTheme`,覆盖所需属性。然后,在`AndroidManifest.xml`中应用主题至应用或特定Activity。运行时切换主题可通过重新设置并重启Activity实现,或使用`setTheme`和`recreate()`方法。这允许开发者定制界面并与品牌指南匹配,或提供多主题选项。
260 6
|
Android开发 开发者
Android UI中的Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等。要更改主题
【6月更文挑战第25天】Android UI中的Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等。要更改主题,首先在`styles.xml`中定义新主题,如`MyAppTheme`,然后在`AndroidManifest.xml`中设置`android:theme`。可应用于全局或特定Activity。运行时切换主题需重置Activity,如通过`setTheme()`和`recreate()`方法。这允许开发者定制界面以匹配品牌或用户偏好。
277 2
|
前端开发 Android开发
前端项目实战壹-安卓4.4/6.0无法安装非原生项目无法渲染样式
前端项目实战壹-安卓4.4/6.0无法安装非原生项目无法渲染样式
167 0

热门文章

最新文章