资源文件的使用
res/anim 存放补间动画 xml文件
res/drawable 存储的是图片的文件 .xml文件
res/drawable-hdpi 图片
res/layout 布局
res/menu 菜单
res/values 存储的是键值队的xml文件
strings 字符串
dimens 尺寸
style 样式
colors 颜色
arrays 字符串数组
2, 不可以通过R直接引用 存放在 assets文件中 AssetManager
1, 在res/vlaues/ 中定义一个colors.xml #f00
1, 在drawable中创建一个xml文件 标签以
2, 在标签中通过属性设置颜色: android:color = "@color/red"
3, 引用: @drawable/****
android:state_pressed 是否处于按下的状态
android:state_focused 是否获取到焦点的状态
android:state_checked 是否被勾选的状态
位置: res/values/styles.xml中
引用 : @style/***
可以定义子类:
1, 前缀式: 父样式的名字在子样式名字的前面出现 格式: {父样式}. {子样式}
2, parent式: 设置属性 parent="父样式"
效果:
qq相框
星级评论
效果:
效果:
效果:
my_shape_rectangle02
效果图:
一, res中文件放置的类型
res/animator 存放属性动画 xml文件res/anim 存放补间动画 xml文件
res/drawable 存储的是图片的文件 .xml文件
res/drawable-hdpi 图片
res/layout 布局
res/menu 菜单
res/values 存储的是键值队的xml文件
strings 字符串
dimens 尺寸
style 样式
colors 颜色
arrays 字符串数组
二, android中资源文件包括两个部分
1, 可以通过R直接引用 存放在 res 文件中2, 不可以通过R直接引用 存放在 assets文件中 AssetManager
三, color 资源
values 中的color常量1, 在res/vlaues/ 中定义一个colors.xml #f00
2, 引用 @color/red
1, 在drawable中创建一个xml文件 标签以
2, 在标签中通过属性设置颜色: android:color = "@color/red"
3, 引用: @drawable/****
四, StateListDrawable 状态集合的图片 xml的文件
android:state_pressed 是否处于按下的状态
android:state_focused 是否获取到焦点的状态
android:state_checked 是否被勾选的状态
五, LayerDrawable 包含了Drawable的资源文件 按照数组的方式叠加文件
相框 进度条 星级评论六, ShapeDrawable 可以在xml中做自定义的形状
可以绘制: 矩形 椭圆形 线 环形七, ClipDrawable 代表从其他的图片上截取片段
八, TransitionDrawable 简单的动画 从一张图片过度到另一张图片 不会直接改变 是一帧一帧变化
九, levelDrawable 等级的
十, 样式 style (作用在View之上 , 把公共的属性提取)
位置: res/values/styles.xml中
引用 : @style/***
可以定义子类:
1, 前缀式: 父样式的名字在子样式名字的前面出现 格式: {父样式}. {子样式}
2, parent式: 设置属性 parent="父样式"
十一, 主题
Theme (作用在 Activity和Application上)
实例:
<textview android:background="@drawable/bg" android:id="@+id/tv" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Hello World!" android:textsize="40dp">
<imagebutton android:background="@null" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/my_selector">
<radiogroup android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" "="">
<radiobutton android:button="@null" android:checked="true" android:drawableleft="@drawable/my_selector_rb" android:id="@+id/man" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="男">
<radiobutton android:button="@null" android:drawableleft="@drawable/my_selector_rb" android:id="@+id/woman" android:layout_height="wrap_content" android:layout_marginleft="100dp" android:layout_width="wrap_content" android:text="女">
</radiobutton></radiobutton>
<edittext android:background="@drawable/my_select_edit" android:ems="10" android:layout_height="wrap_content" android:layout_width="wrap_content"></edittext></imagebutton></textview>
//<span style="font-family: Arial, Helvetica, sans-serif;">ImageButton</span>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/pressed" android:state_pressed="true">
<item android:drawable="@drawable/normal" android:state_pressed="false">
</item></item></selector>
//<span style="font-family: Arial, Helvetica, sans-serif;">RadioGroup</span>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/home_active" android:state_checked="true"></item>
<item android:drawable="@drawable/home_unactive" android:state_checked="false"></item>
</selector>
//<span style="font-family: Arial, Helvetica, sans-serif;">EditText</span>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/blue" android:state_focused="true">
<item android:drawable="@drawable/white" android:state_focused="false">
</item></item></selector>
效果:
<imageview android:background="@drawable/my_layer_image" android:id="@+id/imageView1" android:layout_height="wrap_content" android:layout_width="wrap_content">
<ratingbar android:id="@+id/ratingBar1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:numstars="5" android:progressdrawable="@drawable/my_layer_rating" android:rating="2" android:stepsize="0.5"></ratingbar></imageview>
qq相框
<!--?xml version="1.0" encoding="utf-8"?-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/back" android:id="@+id/back"></item>
<item android:bottom="40dp" android:drawable="@drawable/qq" android:id="@+id/qq" android:left="15dp" android:right="30dp" android:top="20dp"></item>
</layer-list>
星级评论
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/unselect" android:id="@android:id/background"></item>
<item android:drawable="@drawable/unselect" android:id="@android:id/secondaryProgress"></item>
<item android:drawable="@drawable/selected" android:id="@android:id/progress"></item>
</layer-list>
效果:
public class ClipActivity extends Activity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_clip);
iv = (ImageView) findViewById(R.id.imageView1);
}
public void clip(View v)
{
ClipDrawable drawable = (ClipDrawable)iv.getDrawable();
int curLevel = drawable.getLevel();
drawable.setLevel(curLevel + 1000);
}
}
<imageview android:id="@+id/imageView1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:src="@drawable/my_clip">
<button android:id="@+id/button1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:οnclick="clip" android:text="点击截取"></button>
</imageview>
<!--?xml version="1.0" encoding="utf-8"?-->
<clip android:cliporientation="horizontal" android:drawable="@drawable/android1" android:gravity="left" xmlns:android="http://schemas.android.com/apk/res/android">
</clip>
效果:
![\](http://www.2cto.com/uploadfile/Collfiles/20161008/201610080913491704.png)
public class TransitionActivity extends Activity {
private ImageView iv;
private TransitionDrawable drawable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_transition);
iv = (ImageView) findViewById(R.id.imageView1);
drawable = (TransitionDrawable) iv.getDrawable();
}
public void open(View v)
{
drawable.startTransition(5000);
}
public void close(View v)
{
drawable.reverseTransition(5000);
}
}
<imageview android:id="@+id/imageView1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:src="@drawable/transition">
<button android:id="@+id/button1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:οnclick="open" android:text="开灯">
</button>
<button android:id="@+id/button2" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:οnclick="close" android:text="关灯">
</button>
</imageview>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/lamp_off"></item>
<item android:drawable="@drawable/lamp_on"></item>
</transition>
效果:
public class LevelActivity extends Activity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_level);
iv = (ImageView) findViewById(R.id.imageView1);
}
public void clickButton(View v) {
switch (v.getId()) {
case R.id.button1:
iv.setImageLevel(1);
break;
case R.id.button2:
iv.setImageLevel(2);
break;
case R.id.button3:
iv.setImageLevel(3);
break;
case R.id.button4:
iv.setImageLevel(4);
break;
}
}
}
<imageview android:id="@+id/imageView1" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:src="@drawable/my_level">
<linearlayout android:layout_height="wrap_content" android:layout_margintop="50dp" android:layout_width="wrap_content"><button
android:id="@+id/button1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:οnclick="clickButton" android:text="wifi1">
</button>
<button android:id="@+id/button2" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:οnclick="clickButton" android:text="wifi2">
</button>
<button android:id="@+id/button3" android:layout_height="wrap_content" android:layout_width="wrap_content"
android:οnclick="clickButton" android:text="wifi3">
</button>
<button android:id="@+id/button4" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:οnclick="clickButton" android:text="wifi4"></button>
</linearlayout>
</imageview>
<!--?xml version="1.0" encoding="utf-8"?-->
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/wifi1" android:maxlevel="1"></item>
<item android:drawable="@drawable/wifi2" android:maxlevel="2"></item>
<item android:drawable="@drawable/wifi3" android:maxlevel="3"></item>
<item android:drawable="@drawable/wifi4" android:maxlevel="4"></item>
</level-list>
效果:
<button android:background="@drawable/my_shape_rectangle" android:id="@+id/button1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Button"></button><button android:background="@drawable/my_shape_rectangle02" android:id="@+id/button2" android:layout_height="wrap_content" android:layout_margintop="40dp" android:layout_width="wrap_content" android:text="Button"></button><button android:background="@drawable/my_shape_oval" android:id="@+id/button3" android:layout_height="wrap_content" android:layout_margintop="40dp" android:layout_width="wrap_content" android:text="Button"></button>
//my_shape_rectangle
<!--?xml version="1.0" encoding="utf-8"?-->
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 设置填充的颜色 -->
<solid android:color="#0ff">
<!-- 设置内边距 -->
<padding android:bottom="15dp" android:left="15dp" android:right="15dp" android:top="15dp">
<!-- 设置矩形的边 android:dashWidth="" 虚线的宽度 android:dashGap="" 虚线的间距-->
<stroke android:color="#000000" android:dashgap="5dp" android:dashwidth="10dp" android:width="3dp">
</stroke></padding></solid></shape>
my_shape_rectangle02
<!--?xml version="1.0" encoding="utf-8"?-->
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 设置渐变的颜色 -->
<gradient android:angle="45" android:endcolor="#00FFFF" android:startcolor="#FFFF00">
<!-- 设置圆角矩形 -->
<corners android:bottomleftradius="20dp" android:bottomrightradius="20dp" android:topleftradius="20dp" android:toprightradius="20dp">
</corners></gradient></shape>
//<span style="font-family: Arial, Helvetica, sans-serif;">my_shape_oval</span>
<!--?xml version="1.0" encoding="utf-8"?-->
<shape android:shape="oval" xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:angle="45" android:endcolor="#0000FF" android:startcolor="#FF0000" android:type="sweep">
</gradient></shape>
效果图:
<button android:id="@+id/button1" android:text="Button" style="@style/ButtonStyle"></button><button android:id="@+id/button2" android:text="Button" style="@style/ButtonStyle.color"></button><button android:id="@+id/button3" android:text="Button" style="@style/Background"></button>
<resources xmlns:android="http://schemas.android.com/apk/res/android"><style name="AppBaseTheme" parent="android:Theme.Light" type="text/css"></style>
<!-- Application theme. --><style name="AppTheme" parent="AppBaseTheme" type="text/css"><!-- All customizations that are NOT specific to a particular API-level can go here. --></style>
<!-- 自定义样式 --><style name="ButtonStyle" type="text/css"><item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">30dp</item>
<item name="android:textSize">25sp</item></style>
<!-- 继承关系 --><style name="ButtonStyle.color" type="text/css"><item name="android:textColor">@color/red</item></style><style name="Background" parent="ButtonStyle" type="text/css"><item name="android:background">#00FFFF</item></style>
<!-- 自定义主题 --><style name="MyTheme" parent="AppTheme" type="text/css"><item name="android:background">#FAF0E6</item></style>
</resources>
效果:
原文链接:http://www.2cto.com/kf/201610/553300.html