• Android 在XML里面共享同一布局文件
  • 使用XML的方式为背景添加渐变的效果
  • 如何用代码自定义Android 自动生成的标题?
  • 在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?


就上面四点吧,这些好像在搜索里面不大搜索得到,我今天就拿出来讲讲,好像己经有几个星期没有更新过博客的Android 文章了,呵呵,之前承诺的Ebook 源码也没有跟上,最近人懒,刚买的Ipad 一直在玩,荒废了学业呢。。。。。

好吧。废话不多说了,一个个说吧。1.Android 在XMl里面共享同一布局文件
一直以为共享同一布局文件都是在之前写好的布局之后复制过来,或者通过 java代码使用layoutInflater Add进来的。但今天提供了一个更为方便的使用方法,可以在你的任意LAYOUT文件里面将其他的LAYOUT文件拿过来使用,代码也很简单,如下:
<?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
然后我们在另外的布局文件如下使用:
<include layout="@layout/title"
/>




即可将title 的布局直接拿到我们当前的布局文件中。
Tip:使用include标记将layout 放入我们当前的layout文件,也可以直接使用当前 view .findViewByid得到title 布局文件中的任意View 。
2.使用XML的方式为背景添加渐变的效果
为背景实现渐变效果,最传统的方法是用PS制作一张渐变的效果图,但我人懒 没去学PS技术,也懒得更增加一个图片在应用里面,这里使用了Google 提供的一个非常棒的方法来解决背景渐变的功能。
首先,在Drawable 文件夹里面添加一个xml文件,然后写入如下代码:
<?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那么渐变会从下边往下渐变,朋友们可以多改变一下参数试试效果。
发个效果图吧:
分享几点Android 开发中的小技巧_第1张图片
Tip:效果图用的角度是0

3.如何用代码自定义Android 自动生成的标题?
这个比较简单只用了三句代码:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);





效果如下图:
分享几点Android 开发中的小技巧_第2张图片

Tip:这三句代码的位置必须如上代码。
4.在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?

要知道如何在ActivityGroup里面操作子Activity的布局View 那么得先了解一下,如何将Activity放入ActivityGroup 里面,这里我封装了一个小小的方法,公供参考:

/**
* 为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页面如此使用:
private LocalActivityManager manager; //声明一个LocalActivityManager对象
manager = getLocalActivityManager();//得到这个对象






界面初始化时:

/**
* 初始化
*/
void init() {
comonHelp.getView(
this, manager, main, preferenceSet.class, "swc");
}




有了设置的ID了,那就可以得到当前的Activity 了。
下面给出我用过的一段代码,以作参考:
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 对象就行,之后的操作都是一致的。

好了,虽然就这几个小技巧,但还算是比较实用滴。。。

更多相关文章

  1. android 调用系统文件管理器
  2. Android运行时权限,6.0—9.0多版本,多终端(手机,TV盒子)130行代码一劳
  3. 从零开始--系统深入学习android(实践-让我们开始写代码-Android框
  4. android 使用handler更新ui,使用与原理分析详解(附上代码以及截图)
  5. Android和iPhone应用程序界面布局示例
  6. 【5年Android从零复盘系列之五】关于页面布局控件开发总结
  7. Android 为【apk】文件签名,增加修改系统时间等权限
  8. 1、android源代码下载与跟踪
  9. android经典开源代码集合

随机推荐

  1. android常用UI控件的使用例子
  2. Android能用Linux打败Linux手机吗?
  3. Android中实现滑动的七种方式总结
  4. 大虾们的 android 浅谈
  5. android 解决输入法键盘遮盖布局问题
  6. android学习笔记(2)---第一个Android应用程
  7. android 在配置文件中指定上级activity
  8. Android调用WebService系列之KSoap2对象
  9. Android缺乏整体控制或成发展障碍
  10. 如何在eclipse的android工程里引用androi