安卓UI美化_drawable

时间:2021-09-06 21:38:42

UI美化

drawable资源

------------------------------------------
state drawable资源
在不同状态下显示不同的图片
在<selector>标签下的item标签设置属性:
android:state_xxx 各种状态(值为true/false) 如果值为false的话,android:state_xxx可以省略
state_pressed 按钮按下的状态
state_checked 单选框/复选框按下的状态
android:drawable 该状态下对应显示的图片

比如:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/star_pressed"></item>
<item android:drawable="@drawable/star_normal"></item>
</selector>

------------------------------------------
shape drawable资源

在<shape>标签下可以添加如下属性:
<padding> 表示内边距 可以设置属性:
android:left
android:top
android:right
android:botom
<solid> 表示填充 可以设置属性:
android:color 填充的颜色
<stroke> 表示描边 可以设置属性:
android:color 描边的颜色
android:width 描边的宽度
<color> 表示圆角 可以设置属性:
android:radius 圆角的半径
<gradient> 表示渐变 可以设置属性:
android:startColor 开始位置的颜色
android:centerColor 中间位置的颜色
android:endColor 结束位置的颜色

------------------------------------------
Activity

Android中的组件(Activity、Service、ContentProvier、BroadcastReceiver)
需要在AndroidManifest.xml注册

当我们需要添加Activity时:
1. 需要添加一个Activity的子类
2. 需要添加一个布局文件,并通过setContentView()显示到Activity上
3. 在AndroidManifest.xml中添加<activity>标签,注册该Activity
通过android:name=".SecondActivity"绑定该Activity
android:name 格式为 "Activity包名.Activity类名"。如果Activity的包名和应用的包名相同,可以简写为".Activity类名"
Eclipse可以通过如下快捷方式快速创建Activity
工程右键 -- New -- Other -- Android -- Android Activity

跳转到另一个Activity
Intent intent = new Intent();// 创建一个Intent 意图
intent.setClass(MainActivity.this, // 第一个参数:上下文
SecondActivity.class); // 第二个参数:要跳转的Activity的Class对象
startActivity(intent);

-------------------------------------------
在Activity之间传递参数

方法1. 通过putExtra()写入不同类型的参数
intent.putExtra("name", "玉东"); // 类型可以为String
intent.putExtra("age", 54); // 可以为int
intent.putExtra("weight", 99.3); // 可以为double
在另一个Activity中提取intent中的参数
Intent intent = getIntent();
// 在Intent中提取参数
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 0); // 当无法提取值时 返回默认的值
double weight = intent.getDoubleExtra("weight", 0.0);

方法2. 通过putExtras()传递Bundle对象 把参数写入Bundle对象中
Bundle bundle = new Bundle();
bundle.putString("name", "思琪");
bundle.putInt("age", 35);
bundle.putDouble("weight", 123.4);
intent.putExtras(bundle);
在另一个Activity中提取intent中的Bundle参数
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
int age = bundle.getInt("age");
double weight = bundle.getDouble("weight");

方法3. 把参数写入Application全局变量中
创建Application的子类
给每个需要传递的参数设置全局变量,并设置setXxx()和getXxx()方法
在MainActivity中通过getApplication()获得Application对象
再通过setXxx()方法写入参数
在另一个Activity中通过getApplication()获得Application对象
再通过getXxx()方法提取参数
最后不要忘记在AndroidManifest.xml中给<application>添加android:name属性,指向Application类

方法4. To be continued……