- 浏览: 110871 次
- 性别:
- 来自: 北京
最新评论
-
饭更稀:
饭更稀 写道楼主这里写错了吧,第一部分:高16位表示MODE, ...
android绘制view的过程之一---------计算view大小(measure)(转) -
饭更稀:
楼主这里写错了吧,第一部分:高16位表示MODE,不应该是高3 ...
android绘制view的过程之一---------计算view大小(measure)(转) -
hovei:
...
http协议 -
liufang205:
...
http协议
用XML的方式为背景添加渐变的效果
- 博客分类:
- android 开发
•Android 在XML里面共享同一布局文件
•使用XML的方式为背景添加渐变的效果
•如何用代码自定义Android 自动生成的标题?
•在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?
就上面四点吧,这些好像在搜索里面不大搜索得到,我今天就拿出来讲讲,好像己经有几个星期没有更新过博客的Android 文章了,呵呵,之前承诺的Ebook 源码也没有跟上,最近人懒,刚买的Ipad 一直在玩,荒废了学业呢。。。。。
好吧。废话不多说了,一个个说吧。
1.Android 在XMl里面共享同一布局文件
一直以为共享同一布局文件都是在之前写好的布局之后复制过来,或者通过 java代码使用layoutInflater Add进来的。但今天提供了一个更为方便的使用方法,可以在你的任意LAYOUT文件里面将其他的LAYOUT文件拿过来使用,代码也很简单,如下:
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:id="@+id/FrameLayout01"
android:background="@drawable/layout_background" android:layout_width="fill_parent"
android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:text="欢迎你使用本软件" android:id="@+id/TextView01"
android:textColor="#f0f0f0" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
</LinearLayout>
这是我定义的公用layout 文件,我给他起名为:title
然后我们在另外的布局文件如下使用:
1
<include layout="@layout/title" />
即可将title 的布局直接拿到我们当前的布局文件中。
Tip:使用include标记将layout 放入我们当前的layout文件,也可以直接使用当前 view .findViewByid得到title 布局文件中的任意View 。
2.使用XML的方式为背景添加渐变的效果
为背景实现渐变效果,最传统的方法是用PS制作一张渐变的效果图,但我人懒 没去学PS技术,也懒得更增加一个图片在应用里面,这里使用了Google 提供的一个非常棒的方法来解决背景渐变的功能。
首先,在Drawable 文件夹里面添加一个xml文件,然后写入如下代码:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#52adcd" android:endColor="#1c87b1"
android:angle="270.0">
</gradient>
</shape>
对应属性比较简单,这里不多做介绍,android:shape=”rectangle” 为代表渐变的形状为矩形块。android:angle =”270.0″代表角度为270,由上到下的渐变,如果我改变成0那么就变成了从左到右的渐变,如果改变90.0那么渐变会从下边往下渐变,朋友们可以多改变一下参数试试效果。
发个效果图吧:
Tip:效果图用的角度是0。
3.如何用代码自定义Android 自动生成的标题?
这个比较简单只用了三句代码:
1
2
3
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);
效果如下图:
Tip:这三句代码的位置必须如上代码。
4.在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?
要知道如何在ActivityGroup里面操作子Activity的布局View 那么得先了解一下,如何将Activity放入ActivityGroup 里面,这里我封装了一个小小的方法,公供参考:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* 为ActivityGroup的一个ViewGroup设置动态的Activity View 对象
*
* @param 上下文
* @param LocalActivityManager对象
* @param ActivityGroup想要包容Activity
* View 对象的容器(ViewGroup)
* @param 通过Intent的意图打算启用哪个Activity类
* @param 开始Activity
* 设置的Id
*/
public static void getView(Context context, LocalActivityManager lam,
LinearLayout layout_load, Class<?> cls, String Id) {
Intent intent = new Intent(context, cls);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window w = lam.startActivity(Id, intent);
View v = w.getDecorView();
layout_load.removeAllViews();
layout_load.setPadding(5, 5, 5, 5);
layout_load.addView(v, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
}
然后在ActivityGroup页面如此使用:
1
2
private LocalActivityManager manager; //声明一个LocalActivityManager对象
manager = getLocalActivityManager(); //得到这个对象
界面初始化时:
1
2
3
4
5
6
/**
* 初始化
*/
void init() {
comonHelp.getView(this, manager, main, preferenceSet.class, "swc");
}
有了设置的ID了,那就可以得到当前的Activity 了。
下面给出我用过的一段代码,以作参考:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SharedPreferences.Editor editor = getSharedPreferences(
"com.swc.yaomei_preferences",
Activity.MODE_PRIVATE).edit();
LocalActivityManager manager = getLocalActivityManager();
PreferenceActivity acitivty = (PreferenceActivity) manager
.getActivity("swc");
for (int i = 0; i < 9; i++) {
editor.putString("KEY_" + i, "N/A");
PreferenceScreenExt ext = (PreferenceScreenExt) acitivty
.findPreference("KEY_" + i);
RelativeLayout layout = (RelativeLayout) ext
.getLayout();
TextView summary = (TextView) layout.getChildAt(1);
summary.setText("N/A");
}
editor.commit();
System.gc();
上面的PreferenceActivity 是得到一个PreferenceAcitity 因为我是要修改位于ActivityGroup里面对应的Preference所以这里要获得一个PreferenceAcitity ,如果你是一个普通的Activity 直接得到一个Activity 对象就行,之后的操作都是一致的。
好了,虽然就这几个小技巧,但还算是比较实用滴。。。
•使用XML的方式为背景添加渐变的效果
•如何用代码自定义Android 自动生成的标题?
•在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?
就上面四点吧,这些好像在搜索里面不大搜索得到,我今天就拿出来讲讲,好像己经有几个星期没有更新过博客的Android 文章了,呵呵,之前承诺的Ebook 源码也没有跟上,最近人懒,刚买的Ipad 一直在玩,荒废了学业呢。。。。。
好吧。废话不多说了,一个个说吧。
1.Android 在XMl里面共享同一布局文件
一直以为共享同一布局文件都是在之前写好的布局之后复制过来,或者通过 java代码使用layoutInflater Add进来的。但今天提供了一个更为方便的使用方法,可以在你的任意LAYOUT文件里面将其他的LAYOUT文件拿过来使用,代码也很简单,如下:
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:id="@+id/FrameLayout01"
android:background="@drawable/layout_background" android:layout_width="fill_parent"
android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:text="欢迎你使用本软件" android:id="@+id/TextView01"
android:textColor="#f0f0f0" android:layout_width="wrap_content"
android:layout_height="wrap_content"></TextView>
</LinearLayout>
这是我定义的公用layout 文件,我给他起名为:title
然后我们在另外的布局文件如下使用:
1
<include layout="@layout/title" />
即可将title 的布局直接拿到我们当前的布局文件中。
Tip:使用include标记将layout 放入我们当前的layout文件,也可以直接使用当前 view .findViewByid得到title 布局文件中的任意View 。
2.使用XML的方式为背景添加渐变的效果
为背景实现渐变效果,最传统的方法是用PS制作一张渐变的效果图,但我人懒 没去学PS技术,也懒得更增加一个图片在应用里面,这里使用了Google 提供的一个非常棒的方法来解决背景渐变的功能。
首先,在Drawable 文件夹里面添加一个xml文件,然后写入如下代码:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#52adcd" android:endColor="#1c87b1"
android:angle="270.0">
</gradient>
</shape>
对应属性比较简单,这里不多做介绍,android:shape=”rectangle” 为代表渐变的形状为矩形块。android:angle =”270.0″代表角度为270,由上到下的渐变,如果我改变成0那么就变成了从左到右的渐变,如果改变90.0那么渐变会从下边往下渐变,朋友们可以多改变一下参数试试效果。
发个效果图吧:
Tip:效果图用的角度是0。
3.如何用代码自定义Android 自动生成的标题?
这个比较简单只用了三句代码:
1
2
3
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);
效果如下图:
Tip:这三句代码的位置必须如上代码。
4.在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?
要知道如何在ActivityGroup里面操作子Activity的布局View 那么得先了解一下,如何将Activity放入ActivityGroup 里面,这里我封装了一个小小的方法,公供参考:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* 为ActivityGroup的一个ViewGroup设置动态的Activity View 对象
*
* @param 上下文
* @param LocalActivityManager对象
* @param ActivityGroup想要包容Activity
* View 对象的容器(ViewGroup)
* @param 通过Intent的意图打算启用哪个Activity类
* @param 开始Activity
* 设置的Id
*/
public static void getView(Context context, LocalActivityManager lam,
LinearLayout layout_load, Class<?> cls, String Id) {
Intent intent = new Intent(context, cls);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window w = lam.startActivity(Id, intent);
View v = w.getDecorView();
layout_load.removeAllViews();
layout_load.setPadding(5, 5, 5, 5);
layout_load.addView(v, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
}
然后在ActivityGroup页面如此使用:
1
2
private LocalActivityManager manager; //声明一个LocalActivityManager对象
manager = getLocalActivityManager(); //得到这个对象
界面初始化时:
1
2
3
4
5
6
/**
* 初始化
*/
void init() {
comonHelp.getView(this, manager, main, preferenceSet.class, "swc");
}
有了设置的ID了,那就可以得到当前的Activity 了。
下面给出我用过的一段代码,以作参考:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SharedPreferences.Editor editor = getSharedPreferences(
"com.swc.yaomei_preferences",
Activity.MODE_PRIVATE).edit();
LocalActivityManager manager = getLocalActivityManager();
PreferenceActivity acitivty = (PreferenceActivity) manager
.getActivity("swc");
for (int i = 0; i < 9; i++) {
editor.putString("KEY_" + i, "N/A");
PreferenceScreenExt ext = (PreferenceScreenExt) acitivty
.findPreference("KEY_" + i);
RelativeLayout layout = (RelativeLayout) ext
.getLayout();
TextView summary = (TextView) layout.getChildAt(1);
summary.setText("N/A");
}
editor.commit();
System.gc();
上面的PreferenceActivity 是得到一个PreferenceAcitity 因为我是要修改位于ActivityGroup里面对应的Preference所以这里要获得一个PreferenceAcitity ,如果你是一个普通的Activity 直接得到一个Activity 对象就行,之后的操作都是一致的。
好了,虽然就这几个小技巧,但还算是比较实用滴。。。
发表评论
-
android绘制view的过程之一---------计算view大小(measure)(转)
2013-01-16 11:40 34020http://www.eoeandroid.com/forum ... -
[转]Android开发学习笔记:数据存取之SQLite浅析
2012-11-28 10:58 991一.SQLite的介绍 1.SQLite ... -
android 背景改变
2012-07-20 14:35 1064一:在xml里面设置 <?xml version=&qu ... -
转 android view构造函数研究
2012-07-16 13:37 2389上周遇到了SurfaceView的constructor的问题 ... -
ImageView 上显示文字
2012-07-16 09:59 1369@Override protected void onDra ... -
继承ImageView 实现了多点触碰的拖动和缩放
2012-07-16 09:58 995public class TouchView extends ... -
android中ansycTask的用法
2012-06-11 17:09 1777在开发Android应用时必须遵守单线程模型的原则: Andr ... -
Android 使用AsyncTask 后监听异步加载完毕的动作
2012-06-11 17:07 1286AsyncTask 的使用方法网上有很多例子,使用起来也非常的 ... -
android九宫格
2012-06-11 10:31 11241:打开android-sdk文件夹下的tool工具中的dra ... -
androlid 自定义字体
2012-06-07 11:08 10491、Android系统默认支持三种字体,分别为:“sans”, ... -
android 完全退出程序
2012-06-07 10:39 839android.os.Process.killProcess( ... -
[Android] 如何将应用程序转移到SD卡
2012-06-04 17:14 2553其实也只是将程序里的. ... -
android中用到的一些属性
2012-06-04 11:58 0如何防止Android应用中的Service被系统回收? 很 ... -
关键字飞入飞出效果
2012-06-04 10:47 1358一关键字样式及动画 pac ... -
android 传感器 SensorManager
2012-05-28 17:10 923传感器是一种物理装置,能够探测、感受外界的信号、物理条件(如光 ... -
android listview内容向上滚动
2012-05-25 14:54 39371:调用类 public class MainActivity ... -
android ui
2012-05-25 09:32 1253Android ui 一、 图片处理。 a) Drawable ... -
安卓开发中Bitmap/Drawable/byte[]互换 及Bitmap.Config里的一些参数
2012-05-25 09:17 1203在网上搜了一些其它的方法,在这里分享下 1.Drawab ... -
转 android 内容提供者contentprovider
2012-04-12 14:30 0内容提供器用来存放和获取数据并使这些数据可以被所有的应用程序访 ... -
activity onSaveInstanceState
2012-04-09 10:21 0先看Application Fundamentals ...
相关推荐
在安卓开发中,我们经常用到Button按钮... * 2、使用自定义矢量图的方式,说得简单点就是使用安卓提供的一些xml参数,绘制矩形、圆形,然后添加渐变、颜色等效果 * 3、第三种是前面两种方式的结合,然后做出特殊的效果
实例355 用JavaScript控制XML文档的分页显示 565 实例356 通过操作XML数据岛实现添加、删除留言信息 567 第15章 JavaScript与ASP结合 573 15.1 弹出窗口/对话框控制 574 实例357 关闭弹出窗口时刷新父窗口...
实例245 为网页设置背景音乐 378 实例246 随机播放背景音乐 380 实例247 MIDI音乐选择 381 8.9 插入Flash动画 383 实例248 插入Flash动画 383 实例249 插入背景透明的Flash动画 384 8.10 播放视频文件 385 实例250 ...
您可以将颜色与java,kotlin,xml一起使用。 该库包括什么? 所有材料颜色( ) 所有纯色( ) 所有社交色彩( ) 所有材料尺寸 所有HTML颜色( ) 所有流利的颜色( ) 所有Metro颜色( ) 19材质渐变背景 ...
支持使用图像、实体颜色、文本、渐变颜色或者透明效果作为背景图像、图表区域、以及图表图像本身。 ◦阴影效果、抗锯齿、透明效果、及其混合效果,为您提供了您最想要的外观效果 ◦预定义的色彩调色板 ◦自定义...
12.9节使用Convolution Filter创建渐变效果 第十三章. 集合(439) 13.1节. 为ArrayCollection添加,排序和获取数据 13.2节. 过滤ArrayCollection 13.3节. 确定ArrayCollection数据项是否被修改 13.4节. 创建...
16 <br>0033 Return语句的使用 17 <br>0034 如何实现无限循环 17 <br>0035 巧用foreach语句控制控件 18 <br>0036 有效使用switch case语句 18 <br>2.3 运算符 19 <br>0037 如何使用...
实例107 使用EventLog组件向本机现有日志中添加条目 155 3.4 FileSystemWatcher组件 156 实例108 使用FileSystemWatcher组件监视系统日志文件是否被更改 157 3.5 HelpProvider组件 158 实例109 使用HelpProvider...
实例167 渐变效果的文字 实例168 绘制多边形 实例169 简单画图程序 实例170 仿qq截图功能 实例171 模拟石英钟 实例172 绘制贝塞尔曲线 实例173 绘制图形验证码 实例174 以椭圆形显示图像 实例175 使用双缓冲技术绘图...
Shape样式: 圆形、圆角、边框、虚线边框、颜色渐变 Selector样式: 触摸背景变化、触摸字体颜色变化 2、如何使用 2.1 Android Studio导入方法,添加Gradle依赖 在项目的 build.gradle 添加: android { default...