编写自定义的 Android Preference 组件
2010-05-28 15:00:00 来源:WEB开发网Android SDK 提供好几个 Preference 组件,例如 CheckBoxPreference、EditTextPreference、DialogPreference、ListPreference 等,这些组件是跟 Android 提供的 Preference 存储机制绑定的,你可以通过这些组件来修改应用的一些配置,如下图所示,这是 Android 自带的系统设置界面:
但这些组件毕竟还不能满足100%的要求,假设我们需要为应用程序提供一个选择不同图片做为应用背景图的设置,我们需要一个很直观的就可以看到当前所选择的图片,然后点击后可以浏览其他图片并选择。那么这些 Preference 就无法满足这个需求,因此我们需要对 Preference 进行扩展,下图是扩展后的效果:
请看中间选项的效果,在右边显示当前选择的图片。
代码如下:
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
/**
* 图片选项,用于设置图片和边框
* @author Winter Lau
*/
public class ImageOptionPreference extends Preference {
private PreferenceActivity parent;
private int mImage = R.drawable.car;
private ImageView preview_img;
public ImageOptionPreference(Context context, AttributeSet attrs, int defStyle) {
super (context, attrs, defStyle);
}
public ImageOptionPreference(Context context, AttributeSet attrs) {
super (context, attrs);
}
public ImageOptionPreference(Context context) {
super (context);
}
void setActivity(PreferenceActivity parent) {
this .parent = parent;
}
@Override
public boolean isPersistent() {
更多精彩
赞助商链接