当前位置: 首页 > news >正文

android中的样式主题和国际化

一、Android中的样式和主题

    1、1样式

    样式是作用在控件上的,它是一个包含一个或者多个view控件属性的集合。android style类似网页设计中的css设计思路,可以让设计和内容分离,方便继承、复用、重用

    下面通过一个简单的案例演示自定义样式的用法,在该案例中,我们自定义一个样式,用于渲染Button控件的显示效果

    在res/values/styles.xml文件中添加

 

<style name="bt_style_1">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">#00ff00</item>
        <item name="android:text">自定义样式1</item>
    </style>
    <!-- 继承上面的样式,如果属性相同就覆盖 -->
    <style name="bt_style_2" parent="bt_style_1">
        <item name="android:textSize">30sp</item>
        <item name="android:text">自定义样式2</item>
    </style>
在res/layout下的布局文件中,添加两个button
<Button style="@style/bt_style_1" />
 <Button style="@style/bt_style_2" />

结果显示如图image

 

2、2主题

    主题的定义和样式相同,都是在styles.xml文件下,均可以通过设置parent属性来继承一个父样式,不同的是,主题总用在Activity上的

    主题通过定义在AndroidManifest.xml文件中的的和节点下的”android:theme”属性作用在整个应用或者某个Activity,主题对整个应用或某个Activity 进行全局性影响。如果一个应用使用了主题,同时应用下的view 也使用了样式,

那么当主题和样式属性发生冲突时,样式的优先级高于主题。

    android系统也定义了一些主题,如果需要查阅,可以在文档的reference/android/R.style中查看。

    继续使用上面样式中修改过的styles.xml文件,在其中添加如下样式

<!--
主题也是通过在styles.xml 文件中定义<style>节点来定义。
同样式一样,指定一个全局唯一的名字给主题,通过parent 属性继承父样式。
-->
<style name="theme_noTitle">
<!-- 该属性使界面无标题-->
<item name="android:windowNoTitle">true</item>
</style>
<!-- 该属性使界面全屏-->
<style name="them_noTitle_full" parent="theme_noTitle">
<item name="android:windowFullscreen">true</item>
</style>

在AndroidManifest.xml文件中添加

<!-- 在application 中引入主题则所有activity 都适用-->
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/theme_noTitle" >
<!-- 在activity 中引入主题则当前Activity 适用-->
<activity
android:theme="@style/them_noTitle_full"
android:name="com.example.styleAndTheme.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

 

二、Android实现国际化

    android程序国际化,也就是程序可以根据系统所使用的语言,将界面中的文字翻译成与之对象的语言。这样,可以让程序更加通用,android可以通过资源文件非常方便的实现程序的国际化

在编写Android 项目时,通常都是将程序中要使用的字符串资源放置在res/values 目录下的strings.xml 文件中,为了给这些字符串资源实现国际化,可以在Android 项目的res 目录下,创建对应于各个语言的资源文件夹(例如,了让程序兼容简体中文、繁体中文和美式英文,可以分别创建名称为values-zh-rCN、values-zh-rTW 和values-en-rUS的文件夹),然后在每个文件夹中创建一个对应的strings.xml 文件,并在该文件中定义对应语言的字符串即可。样,当程序运行时,就会自动根据操作系统所使用的语言来显示对应的字符串信息了。图片也可以进行国际化,同字符串的国际化类似,只需根据程序要兼容的语言版本,分别创建名称类似drawable-zh-rCN,drawable-zh-rTW 这的文件夹,将图片资源存放在文件夹下即可。

转载于:https://www.cnblogs.com/wgkupupup/p/4639569.html

相关文章:

  • sql-go的使用
  • sql 获取新插入的id值的三种方法
  • 关于WCF SessionId的说明
  • idea中的jsp依赖
  • html5页面中拨打电话的方式
  • Cron表达式
  • 参数修饰符ref,out,params的区别
  • filter的简单介绍
  • 【转】深入理解java异常处理机制
  • 永久激活(破解) IntelliJ IDEA 2018(2018年10月更新)
  • 浏览器关闭后,Session就销毁了吗?
  • bzoj3527: [Zjoi2014]力
  • java中BASE64的编码解码
  • 有关“滑动门”代码研究
  • 泛型的省略
  • 【mysql】环境安装、服务启动、密码设置
  • 【知识碎片】第三方登录弹窗效果
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Android 控件背景颜色处理
  • Apache Zeppelin在Apache Trafodion上的可视化
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES6 学习笔记(一)let,const和解构赋值
  • maven工程打包jar以及java jar命令的classpath使用
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Spring核心 Bean的高级装配
  • 蓝海存储开关机注意事项总结
  • 如何合理的规划jvm性能调优
  • 深度学习入门:10门免费线上课程推荐
  • 突破自己的技术思维
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 移动端唤起键盘时取消position:fixed定位
  • 最近的计划
  • Hibernate主键生成策略及选择
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • (003)SlickEdit Unity的补全
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (三)模仿学习-Action数据的模仿
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)fock函数详解
  • (转)visual stdio 书签功能介绍
  • .java 9 找不到符号_java找不到符号
  • .NET CLR Hosting 简介
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net开发时的诡异问题,button的onclick事件无效
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @KafkaListener注解详解(一)| 常用参数详解
  • @RestController注解的使用
  • [20181219]script使用小技巧.txt
  • [android] 切换界面的通用处理
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn