码迷,mamicode.com
首页 > 移动开发 > 详细

初学_Android4高级编程-1 Application单例,及优化布局

时间:2015-07-06 19:40:32      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:


※Application
每次应用程序运行时,Application类保持实例化状态,Application实现为一个单态(单例),扩展如:
import *;
public class MyApplication extends Application{
private static MyApplication singleton;

public static MyApplication getIntance(){
return singleton;
}

//创建应用程序是调用,实例化应用程序单态,创建和实例化状态变量或共享资源
@Override
public final void onCreate(){
super.onCreate();
singleton = this;
}
//当系统处于资源匮乏的状态时,清空缓存和不必要资源
@Override
public final void onLowMemory(){
super.onLowMemory();
}
//当系统决定减少内存开销时调用,包含一个level参数,永于提供请求上下文
@Override
public final void onTrimMemoy(int level){
super.onTrimMemoy(level);
}
@Override
//当应用程序使用的值依赖于特定的配置,重写来重新加载这些值。
public final void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
}
}

 

※优化布局
1.当包含有merge标签的布局被添加到另一个布局是,该布局的merge会被删除。
使用include标签把包含于merge标签的布局添加到另一个布局中,能够创建灵活的,可复用的布局定义。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include android:id="@+id/my_image_text_layout"
layout="@layout/image_text_layout"
</LinearLayout>

image_text_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<merge
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:gravity="center_horizontal"
android:layout_gravity="bottom"
/>
</merge>

2.避免使用多个View,布局包含的View个数不用改超过80。想要在复杂的布局内填充View
的数量较少,可以使用ViewStub。相当于一个延迟的include标签,只有在显示的调用inflate()方法或被置为可见时才会被填充。
View stub = findViewById(R.id.id_stub);
stub.setVisibility(View.VISIBLE);
View inStub = findViewById(R.id.id_in_stub)

ViewStub stub = (ViewStub) findViewById(R.id.viewstub_demo_text);
stub.inflate();

//layout属性为需要填充的xml文件。
<ViewStub
android:id="@+id/id_stub"
android:inflatedId="@+id/id_in_stub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout="@layout/viewstub_layout"/>

初学_Android4高级编程-1 Application单例,及优化布局

标签:

原文地址:http://www.cnblogs.com/waiting-light/p/4625120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!