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……

安卓UI美化_drawable的更多相关文章

  1. HTML5小游戏UI美化版

    HTML5小游戏[是男人就下一百层]UI美化版 之前写的小游戏,要么就比较简单,要么就是比较难看,或者人物本身是不会动的. 结合了其它人的经验,研究了一下精灵运动,就写一个简单的小游戏来试一下. 介绍 ...

  2. 基于python+appium+yaml安卓UI自动化测试分享

    结构介绍 之前分享过一篇安卓UI测试,但是没有实现数据与代码分离,后期维护成本较高,所以最近抽空优化了一下.不想看文章得可以直接去Github,欢迎拍砖大致结构如下:   结构.png testyam ...

  3. uiautomator +python 安卓UI自动化尝试

    使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article ...

  4. C# Winfrom UI 美化

    Winfrom UI 美化 此处只做演示,未进行页面布局.... 1.CSkin:此处只显示一种样式供参考,可继承其他样式——略 2.MetroFramework.Design 3.Ribbon 4. ...

  5. 安卓的一些UI美化框架的使用

    目录 一.前言 二.Android-Bootstrap 三.Sweet Alert Dialog 四.ExplosionField 一.前言 在这里记录一些用到过的觉得还算不错的UI第三方开源美化框架 ...

  6. Pyqt QSS简单的Ui美化

    什么是QSS QSS 是Qt StyleSheet 的简称,意思就是qt的样式表格,StyleSheet 可以像CSS一样的写样式.使页面美化跟代码层分开,利于维护. QSS的语法 同css一样,他也 ...

  7. 解决安卓UI刷新卡屏,只显示最后一处刷新的问题

    ---恢复内容开始--- 错误1 安卓的机制决定了只有UI线程(也就是主线程)才能更新UI界面 否则会导致UI界面混乱的问题 这就说明了在new Thread中直接showImage是会报“出现非主线 ...

  8. python+appium+yaml安卓UI自动化测试分享

    一.实现数据与代码分离,维护成本较低,先看看自动化结构,大体如下: testyaml管理用例,实现数据与代码分离,一个模块一个文件夹 public 存放公共文件,如读取配置文件.启动appium服务. ...

  9. 谷歌安卓UI自动化测试策略

    中文翻译版: 为了使大家确信"应做单元测试,就一定能做单元测试",谷歌测试工程师Mona El Mahdy专门写了一篇博客,提出了几种执行安卓应用用户界面单元测试的方法.Mahdy ...

随机推荐

  1. 【HDOJ】3909 Sudoku

    DLX的应用,基本题,注意maxnode开大点儿. /* 3909 */ #include <iostream> #include <string> #include < ...

  2. 【HDOJ】1026 Ignatius and the Princess I

    这道题搞了很久啊.搜索非常好的一道题.昨天想了2小时,以为是深搜,但后来发现深搜怎么也没法输出正确路径.今天拿宽搜试了一下,问题就是普通的队列宽搜没法得到当前时间最小值.看了一下讨论区,发现优先级队列 ...

  3. Android开发之使用BaseAdapter的notifyDataSetChanged()无法更新列表

    在做一个通讯录的app,使用BaseAdapter作为adapter.重写了getCount().getItem().getItemId() .getView()方法. 因为新建联系人在第二个acti ...

  4. EF双向一对一中的坑

    EF版本 6.0 在项目中双向一对一关系是普遍存在的,如果不仔细检查,并不容易发现这个坑 下面新建两个类(假设这两个类是一对一的关系)对应实体都设置为可延迟加载 映射关系为: 再建一个数据访问类: 运 ...

  5. 【转】Android 源码编译make的错误处理--不错

    原文网址:http://blog.csdn.net/ithomer/article/details/6977386 Android源码下载:官方下载 或参考android源码下载方式 Android编 ...

  6. (转载)CentOS: 开放80、22、3306端口操作

    (转载)http://blog.sina.com.cn/s/blog_3eba8f1c0100tsox.html #/sbin/iptables -I INPUT -p tcp --dport 80 ...

  7. Oracle将英文字符集数据转换成中文

    转换背景:老系统数据为英文字符集,需要将老数据(Oracle 8i)转换到oracle 10g(中文字符集)中 思路:先将老数据从8i的数据库中导出,导出的数据库文件为英文字符集,再将10g的数据库改 ...

  8. Robotium 系列(1)

    之前也写过一些blog,可是没什么坚持.这个系列算是对之前工作的一个总结和提高:也与大家共同进步! 本文主要介绍的内容是: 1. 软件测试的基本概念 2. 自动化测试的概念 3. 手动测试和自动化测试 ...

  9. 浅谈.NET的缓存(依赖和过期)

    Cache 线程安全,相当于static Arraylist. 缓存过期机制 1.设置过期时间 a.可设置过期时间 Cache.Insert());//设置10分钟过期 b.绝对过期时间 Cache. ...

  10. PHP写日志什么时候需要加锁?

    先分析fwrite,直接找到PHP源代码: static size_t _php_stream_write_buffer(php_stream *stream, const char *buf, si ...