Android ApiDemo 分析(二)
来源:互联网 发布:java集合类有哪些 编辑:程序博客网 时间:2024/06/06 10:57
app/activity/custom dialog
这个界面主要展示用户自定义风格的功能。
首先整个页面只引用了布局文件custom_dialog_activity,没有其他任何功能。
android可以通过风格和主题来统一各种屏幕和UI元素,就像手机的设置主题一样。风格和主题本质是一样的,只是用的地方不同,主题中会有一些特殊的属性。大范围使用,如一个应用程序或一个activity就叫主题,小范围如一个布局或一个控件就叫风格。
定义风格和主题的方式是一样的,之后统称风格。在res/values下建立style.xml文件,加<resource>标签,风格就定义在里面,标签为<style>。
<style name="MyText" //name用来指定该风格的名称
parent="@style/Text"> //parent用来指定继承父类风格
<item name="android:textSize">12sp</item> //具体的属性设定
<item name="android:textColor">#fff</item>
......
</style>
主题中就会多一些特殊属性,如:
<item name="android:windowNoTitle">true</item>
<item name="android:windowFrame">@drawable/screen_frame</item>
<item name="android:windowBackground">@drawable/screen_background_white</item>
<item name="android:panelForegroundColor">#FF000000</item>
<item name="android:panelBackgroundColor">#FFFFFFFF</item>
<item name="android:panelTextColor">?panelForegroundColor</item>
<item name="android:panelTextSize">14</item>
<item name="android:menuItemTextColor">?panelTextColor</item>
<item name="android:menuItemTextSize">?panelTextSize</item>
......
可以看到其中对资源的引用有两种方法,@***和?***,@引用的是当前主题外的资源,?引用的是当前主题中已定义的资源。如
<item name="android:panelForegroundColor">#FF000000</item>之后的
<item name="android:panelTextColor">?panelForegroundColor</item>
其他
这个例子中在定义style时应用了@drawable/filled_box资源,找到res/drawable/filled_box文件如下:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#f0600000"/>
<stroke android:width="3dp" color="#ffff8080"/>
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
Android中常常使用shape来定义控件的一些显示属性,
solid:实心,填充的颜色;
gradient:渐变
stroke:描边
corners:圆角
padding:间隔
这个界面主要展示用户自定义风格的功能。
首先整个页面只引用了布局文件custom_dialog_activity,没有其他任何功能。
在res/layout下找到此xml文件,发现页面是一个TextView(一直以为控件必须包含在布局中,如LinearLayout,看来不是这样。。。),里面引用了一个字符串资源custom_dialog_activity_text。
这里存在一个问题,在TextView中并没有定义其背景颜色,也就是说应该是黑乎乎的一片,可是用图像查看器发现是深红色的,不理解。。。
android可以通过风格和主题来统一各种屏幕和UI元素,就像手机的设置主题一样。风格和主题本质是一样的,只是用的地方不同,主题中会有一些特殊的属性。大范围使用,如一个应用程序或一个activity就叫主题,小范围如一个布局或一个控件就叫风格。
定义风格和主题的方式是一样的,之后统称风格。在res/values下建立style.xml文件,加<resource>标签,风格就定义在里面,标签为<style>。
<style name="MyText" //name用来指定该风格的名称
parent="@style/Text"> //parent用来指定继承父类风格
<item name="android:textSize">12sp</item> //具体的属性设定
<item name="android:textColor">#fff</item>
......
</style>
主题中就会多一些特殊属性,如:
<item name="android:windowNoTitle">true</item>
<item name="android:windowFrame">@drawable/screen_frame</item>
<item name="android:windowBackground">@drawable/screen_background_white</item>
<item name="android:panelForegroundColor">#FF000000</item>
<item name="android:panelBackgroundColor">#FFFFFFFF</item>
<item name="android:panelTextColor">?panelForegroundColor</item>
<item name="android:panelTextSize">14</item>
<item name="android:menuItemTextColor">?panelTextColor</item>
<item name="android:menuItemTextSize">?panelTextSize</item>
......
可以看到其中对资源的引用有两种方法,@***和?***,@引用的是当前主题外的资源,?引用的是当前主题中已定义的资源。如
<item name="android:panelForegroundColor">#FF000000</item>之后的
<item name="android:panelTextColor">?panelForegroundColor</item>
其他
这个例子中在定义style时应用了@drawable/filled_box资源,找到res/drawable/filled_box文件如下:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#f0600000"/>
<stroke android:width="3dp" color="#ffff8080"/>
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp"
android:right="10dp" android:bottom="10dp" />
</shape>
Android中常常使用shape来定义控件的一些显示属性,
solid:实心,填充的颜色;
gradient:渐变
stroke:描边
corners:圆角
padding:间隔
- Android ApiDemo 分析(二)
- Android ApiDemo 分析(一)
- Android ApiDemo分析(三)
- Android ApiDemo分析(四)
- Android ApiDemo分析(五)
- Android ApiDemo分析(六)
- Android ApiDemo分析(七)
- Android ApiDemo分析(八)
- Android ApiDemo分析(九)--Graphics
- APIDemo Service(二)
- Android APIDemo 中蓝牙分析
- Android ApiDemo 笔记(二)Graphics和View
- Android ApiDemo 笔记(二)Graphics和View
- Android ApiDemo学习(二)notification——1 IncomingMessage
- Android ApiDemo 笔记(二)Graphics和View
- Android ApiDemo分析(十)—— ListView的用法
- Android ApiDemo(十二)-- Graphics2
- android--apidemo
- 打印菱形
- GridBagConstraints布局
- 将1——200之间不能被m整除的数分行打印,每行打印n个
- WPF绘制网格线
- 求1——200之间的素数
- Android ApiDemo 分析(二)
- TabHost使用小结
- The Best 404 Error Pages Of All Time
- 快速排序的一种写法
- 二分查找的递归算法(折半查找)
- Linux 如何挂载光驱
- 错误关联器 C++实现
- 每日一题【二】-数组元素去重
- zoj 2100 Seeding(dfs)