Android之旅十六 android中各种资源的使用

android中各种资源的使用:

在android开发中,各种资源的合理使用应该在各自的xml中进行定义,以便重复使用;

字符串资源:strings.xml,xml中引用:@string/XXX,java代码中引用:R.string.XXX

样式资源:styles.xml,xml中引用:@style/XXX,java代码中引用:R.style.XXX

图片资源:colors.xml,xml中引用:@color/XXX,java代码中引用:R.color.XXX

尺寸资源:dimens.xml,xml中引用:@dimen/XXX,java代码中引用:R.dimen.XXX

.............

根据各资源定义,实现的简单的效果图 :

修改页面布局背景:android:background="#f0f0e0",也可以引用color.xml中定义的资源

1、在values文件夹中新建colors.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<color name="tv_text_color">#FF33CC</color>
	<color name="btn_text_color">#0033CC</color>
</resources>

上面中定义了TextView和Button中字体颜色,页面使用:@color/tv_text_color

   <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="测试字体样式"
        android:textColor="@color/tv_text_color" />

2、在values中新建styles.xml文件:定义了统一的style样式,可以在应用程序中多处使用

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<style name="AppTheme" parent="android:Theme.Light"></style>

	<style name="content_style">
        <item name="android:minHeight">50dp</item>
        <item name="android:gravity">left|center</item>
        <item name="android:textColor">#000000</item>
        <item name="android:textSize">15sp</item>
        <item name="android:lineSpacingExtra">2dp</item>
        <item name="android:background">#bfbfbf</item>
    </style>
</resources>

在xml中引用:给TextView定义style样式:@style/content_style

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="测试style样式"
        style="@style/content_style"/>

3、给Button添加背景图片:android:background="@drawable/btn_bg1",其中btn_bg1为放在drawable-hdpi、ldpi、mdpi中的图片资源,hdpi、ldpi、mdpi分别代表高分辨率、低分辨率、中分辨率,是根据android手机的屏幕分辨率来决定的;

4、有时候,我们有这样的需求,按钮初始化为黄绿色,当我们点击时候变成红色背景,类似下面的需求:

初始化:

点击后:

这时候,我们可以在xml中借助选择器来定义,selector,我们在res下新建文件夹drawable,然后编写我们的selector相应的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/btn_bg2" />
    <item android:state_focused="true" android:drawable="@drawable/btn_bg4"/>
    <item android:drawable="@drawable/btn_bg1" />
</selector>

上面定义中:

按钮按下锁显示的图片:

<item android:state_pressed="true" android:drawable="@drawable/btn_bg2" />

聚焦所显示的图片:

<item android:state_focused="true" android:drawable="@drawable/btn_bg4"/>

默认显示的图片:

<item android:drawable="@drawable/btn_bg1" />

里面还有很多的属性供我们选择!

我们在xml中引用它:android:background:@drawable/相应的selector文件名.xml

java代码:R.drawable.相应的selector文件名.xml

5、定义带圆角的矩形按钮:同样是根据selector来选择,只不过它里面也可以定义多种shape属性,shape表示定义多种形状,用的也很多,可以给我们的界面带来很丰富的体验:

<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_selected="true">
	<shape>
	    <gradient android:angle="270" android:startColor="#A5D245"
	        android:endColor="#99BD4C"/>
	    <size android:height="60dp" android:width="320dp"/>
	    <corners android:radius="8dp"/>
	</shape>
  </item>
  <item android:state_pressed="true">
	<shape>
	    <gradient android:angle="270" android:startColor="#A5D245"
	        android:endColor="#99BD4C"/>
	    <size android:height="60dp" android:width="320dp"/>
	    <corners android:radius="8dp"/>
	</shape>
  </item>
  <item>
	<shape>
	    <gradient android:angle="270" android:startColor="#A8C3B0"
	        android:endColor="#C6CFCE"/>
	    <size android:height="60dp" android:width="320dp"/>
	    <corners android:radius="8dp"/>
	</shape>
  </item>
</selector>

shape中属性定义解释:

<shape>  android:shape=["rectangle" | "oval" | "line" | "ring"]

其中rectagle矩形,oval椭圆,line水平直线,ring环形

<shape>中子节点的常用属性:

<gradient>  渐变

android:startColor  起始颜色

android:endColor  结束颜色

android:angle  渐变角度,0从上到下,90表示从左到右,数值为45的整数倍默认为0;

android:type  渐变的样式 liner线性渐变 radial环形渐变 sweep

<solid >  填充

android:color  填充的颜色

<stroke > 描边

android:width 描边的宽度

android:color 描边的颜色

android:dashWidth 表示‘-‘横线的宽度

android:dashGap 表示‘-‘横线之间的距离

<corners > 圆角

android:radius  圆角的半径 值越大角越圆

android:topRightRadius  右上圆角半径

android:bottomLeftRadius 右下圆角角半径

android:topLeftRadius 左上圆角半径

android:bottomRightRadius 左下圆角半径

项目中我们还有很多资源需要我们去自己查找学习和灵活运用!!

Android之旅十六 android中各种资源的使用

时间: 2024-08-06 20:02:29

Android之旅十六 android中各种资源的使用的相关文章

Android之旅十五 android中的网络操作

android中的网络操作和java里面没有什么区别,java里面的很多网络操作方法都可以搬到android中去使用,主要几个点: 1.post和get请求的区别,大家可以在网上查阅有关资料进行了解,get主要以向地址中拼接字符串参数发送到服务器,长度有限制,并且请求参数暴露在地址栏中,不怎么安全:post则主要是将请求参数转换为相应的http协议请求体发送到服务器,相比get方式,参数的长度没有限制,并且参数信息不会暴露给用户: 2.我们在java web里面通过浏览器以post方式发送数据,

Android之旅十四 android中的xml文件解析

在我们做有关android项目的时候,肯定会涉及到对xml文件的解析操作.以下给大家介绍一下xml文件的解析.包括DOM.SAX.Pull以及曾经我们用到的DOM4J和JDOM: 要解析的XML文件:person.xml <? xml version="1.0" encoding="UTF-8"? > <persons> <person id="001"> <name>zhangsan</na

Android笔记二十六.Android异步任务处理(AsyncTask)

转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.引言 我们知道Android的UI线程主要负责处理用户的按键事件.用户触屏事件及屏幕绘图事件等,对于其他的操作尽量不要在UI线程中实现,因为这些操作很有可能会阻塞UI线程,比如一些耗时操作,会导致UI界面停止响应,从而降低了用户的体验.所以,为了避免UI线程失去响应的问题,Android建议将耗时操作放在新线程中完成,但新线程也可能需要动态更新UI组件:比如需要从网上获取一个网页,然后在Te

Android学习笔记十六.Android数据存储与IO.SharedPreferences

SharedPreferences 对于应用程序的数据输入.输出,如果是应用程序只是少量数据需要保存,那么使用普通文件就可以了(SharedPrefereces);但如果应用程序有大量数据需要存储.访问,就需要借助数据库了.Android系统内置了SQLite数据库,SQLite数据库是一个真正轻量级的数据库,它没有后台进程,整个数据库就对应于一个文件. 1.SharedPreferences简介 (1)概念:SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存

Android笔记(六十六) android中的动画——XML文件定义属性动画

除了直接在java代码中定义动画之外,还可以使用xml文件定义动画,以便重用. 如果想要使用XML来编写动画,首先要在res目录下面新建一个animator文件夹,所有属性动画的XML文件都应该存放在这个文件夹当中.然后在XML文件中我们一共可以使用如下三种标签: <animator>  对应代码中的ValueAnimator <objectAnimator>  对应代码中的ObjectAnimator <set>  对应代码中的AnimatorSet 使用XML设置动

Android中GridView拖拽的效果【android进化三十六】

  最 近看到联想,摩托罗拉等,手机launcher中有个效果,进入mainmenu后,里面的应用程序的图标可以拖来拖去,所以我也参照网上给的代码,写了 一个例子.还是很有趣的,实现的流畅度没有人家的那么好,我只是模仿这种效果,我写的这个拖拽是两个图标之间进行交换,所以,当从一行的某个位置,换到下 一行的另一列的时候,发现有好几个图标都改变位置了,因为是相邻两个交换位置,所以每经过相邻的图标的时候都改变位置.先弄个雏形,以后再更新优化. 转载请标明出处:http://blog.csdn.net/

Android之旅十八 百度地图环境搭建

在android中使用百度地图,我们可以先看看百度地图相应的SDK信息:http://developer.baidu.com/map/index.php?title=androidsdk,它里面基本上有关于android中的所有配置.api调用等操作方法,下面我们来看看百度地图在android中环境的搭建步骤:我们这里使用的百度地图版本为 Android SDK v3.1.1,版本不同,里面的API可能不一样,所以希望大家能够注意!! 一.申请密钥,无论是开发谷歌地图还是百度地图我们都需要申请密

Android学习之基础知识十六 — Android开发高级技巧的掌握

一.全局获取Context的技巧 前面我们很多地方都使用到了Context,弹出Toast的时候.启动活动的时候.发送广播的时候.操作数据库的时候.使用通知的时候等等.或许目前来说我们并没有为得不到Context而发愁,因为我们很多地方都是在活动中进行的,而活动本身就是一个Context对象,但是,当应用程序的架构逐渐开始复杂起来的时候,很多的逻辑代码都将脱离Activity类,但此时又恰恰需要使用Context,特许这个时候就会感到有些伤脑筋了. 举个例子,在前面网络编程的最佳实践中,我们编写

android动画具体解释六 XML中定义动画

动画View 属性动画系统同意动画View对象并提供非常多比view动画系统更高级的功能.view动画系统通过改变绘制方式来变换View对象,view动画是被view的容器所处理的,由于View本身没有要操控的属性.结果就是View被动画了.但View对象本身并没有变化. 在Android3.0中,新的属性和对应的getter和setter方法被增加以克服此缺点. 属性动画系统能够通过改变View对象的真实属性来动画Views. 并且.View也会在其属性改变时自己主动调用invalidate(