- 浏览: 1591432 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (289)
- java 语法基础 (51)
- spring (8)
- mvc struct /Ant --build.xml (8)
- SOA (0)
- oracle 9i/10g (23)
- sql server 2000-2005 (3)
- 数据库基础知识 (6)
- 设计模式与软件架构 (10)
- Hibernate 持久化 (9)
- J2SE/J2EE/J2ME/AJAX 技术 (8)
- JSF 技术 (3)
- JAVA 图形化 (0)
- JMS (40)
- Eclipse 3.2 IDE 开发技巧 (13)
- 项目处理方法集合 (2)
- html/jsp/javascript (2)
- Unix/Linux (9)
- j2me/ARM/windriver/嵌入式 (4)
- 电信科学 (8)
- jsp (1)
- c/c++ (1)
- LZW压缩算法(java) (2)
- Android (77)
- 版本管理git/svn (2)
最新评论
-
huihai:
有demo吗?
NamingStrategy实现动态表名映射 -
cangbaotu:
推荐给大家一些有用的爬虫源码:https://github.c ...
网络爬虫(源代码参考) -
tuspark:
除了.classpath文件以外,.project文件也应该了 ...
Eclipse .classpath文件浅谈 -
tuspark:
造成eclipse自动关闭的原因有很多,这里有很多介绍:ecl ...
eclipse 自动关闭 解决方案 -
DEMONU:
网上都是这些,这种文章。。。
ActiveMQ中的消息持久性
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() {
- return false ;
- }
- /**
- * 修改图片
- * @param newImage
- * @return
- */
- boolean ChangeGamePic( int newImage ){
- if ( this .mImage == newImage)
- return false ;
- GameGlobal.save_pic(newImage);
- this .mImage = newImage;
- preview_img.setImageResource(newImage);
- return true ;
- }
- @Override
- protected void onBindView(View view) {
- super .onBindView(view);
- this .mImage = GameGlobal.get_pic();
- preview_img = (ImageView)view.findViewById(R.id.pref_current_img);
- preview_img.setImageResource(this .mImage);
- }
- @Override
- protected void onClick() {
- super .onClick();
- Bundle bundle = new Bundle();
- bundle.putInt(GameGlobal.PREF_KEY_IMAGE, this .mImage);
- Intent intent = new Intent(parent, ImageSelector. class );
- intent.putExtras(bundle);
- parent.startActivityForResult(intent, MagicSetting.REQUEST_CODE_GAME_IMAGE);
- }
- }
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() { return false; } /** * 修改图片 * @param newImage * @return */ boolean ChangeGamePic(int newImage ){ if(this.mImage == newImage) return false; GameGlobal.save_pic(newImage); this.mImage = newImage; preview_img.setImageResource(newImage); return true; } @Override protected void onBindView(View view) { super.onBindView(view); this.mImage = GameGlobal.get_pic(); preview_img = (ImageView)view.findViewById(R.id.pref_current_img); preview_img.setImageResource(this.mImage); } @Override protected void onClick() { super.onClick(); Bundle bundle = new Bundle(); bundle.putInt(GameGlobal.PREF_KEY_IMAGE, this.mImage); Intent intent = new Intent(parent, ImageSelector.class); intent.putExtras(bundle); parent.startActivityForResult(intent, MagicSetting.REQUEST_CODE_GAME_IMAGE); } }对应的 Perference 配置信息如下
<com.liusoft.android.fmagic.ImageOptionPreference
android:key="game_pic"
android:persistent="false"
android:title="@string/pref_pic_title"
android:summary="@string/pref_pic_summary"
android:widgetLayout="@layout/preference_widget_image"
/>
而 preference_widget_image 的信息如下
<?xml version="1.0" encoding="utf-8"?>
<!-- Layout used by ImageOptionPreference for the image option style.
This is inflated inside android.R.layout.preference.
-->
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pref_current_img"
android:layout_width="54dip"
android:layout_height="54dip"
android:layout_marginRight="4dip"
android:layout_gravity="center_vertical"
android:focusable="false"
android:clickable="false"
android:background="#eeeeee"
android:padding="2dip"
/>
而这个 ImageView 的 Layout 就是在选项右边显示的图片。
评论
android:widgetLayout="@layout/preference_widget_image"这里报错
发表评论
-
APN(default、mms、supl、dun、hipri接入点类型的区别)
2013-10-10 19:31 45869设置APN上网时,大家可能经常遇到这个问题:为什么有时要填写 ... -
AMR音频编码器概述及文件格式分析
2013-10-10 19:29 3958全称Adaptive Multi-Rate,自适应多速率编码 ... -
pad 强制加载 Hdpi资源 (2.3 dpi < 240)
2012-07-16 16:47 0pad 强制加载 Hdpi资源 (2.3 dpi < ... -
android 设计模式-享元模式
2011-12-16 23:01 2195享元(FlyWeight)模式,原意是“轻量级”模式,它用来解 ... -
statusbar 2.3
2011-11-08 16:04 1285以前我的文章分析过Stat ... -
android 输入法默认设置
2011-07-07 14:00 7198设置默认输入法 在 frameworks\base\co ... -
Android Media Scanner Process
2011-06-06 22:58 3410下面是系统图 Medi ... -
handler与多线程消息处理
2011-06-04 13:42 8284在Android下面也有多线程的概念,在C/C++中,子线程可 ... -
android light
2011-03-24 16:15 3415背光设置是在:设置->声音和显示->亮度,通过进度 ... -
PowerManagerService sensor
2011-03-22 20:06 2673默认分类 2010-12-24 14:34:55 阅读144 ... -
android 单例
2011-02-15 09:26 42301. Framework层的代码: A ... -
Android 开发之 Services 服务
2010-11-02 18:21 4244Service Service ... -
深入学习android之AlarmManager
2010-11-01 16:50 34768对应AlarmManage有一个Alarm ... -
eclipse+android+ddms+adt
2010-09-14 10:30 8460用eclipse + ADT作为android ... -
Menus
2010-09-05 19:01 1791Android Menus 文章分类:移动开发 1.O ... -
Android开机自启动应用开发
2010-08-28 10:07 4594目前需要开发一个开机自启动的GTD应用程序来提醒用户的 ... -
Android2.1_Launcher学习笔记
2010-08-11 13:40 3879文章分类:移动开发 好么,2.0的源码没看几天,2.1的 ... -
Browsing Android Source in Eclipse
2010-08-09 16:00 3439Google’s Android SDK includes ... -
android 编译
2010-08-07 16:31 25331 我的系统是Ubuntu 8.04 * 2 系统上 ... -
Ubuntu linux 右键添加"以管理员身份打开","在终端中打开"
2010-08-02 15:04 4662Ubuntu linux 右键添加"以管理员身份打开 ...
相关推荐
在Android开发中,Preference是用来创建用户界面的一种组件,主要用于实现设置界面。Preference允许开发者轻松地创建可交互的UI元素,如开关、选择器和输入框等,这些元素通常出现在应用程序的设置菜单中。本篇文章...
在Android中,Preference是用于展示用户可配置设置的组件,而自定义View或Preference则可以满足特定需求,提供更丰富的交互体验。 2. **颜色选择器(ColorPicker)** 项目中的ColorPicker是关键组件,它通常包含一...
5. **其他组件**: V7库还包含了其他的组件和服务,如Preference-v7库提供了对自定义设置界面的支持,Loader-v7库帮助管理后台数据加载,Fragment-v7库则提供了对早期版本Android中Fragment的支持。 通过研究这个...
总之,实现"android 仿ios风格的SwitchButton"需要结合XML布局、自定义样式、事件监听和可能的自定义Preference类。这不仅提升了应用的视觉一致性,也为用户提供了一种熟悉的操作方式。通过不断优化和调试,可以创造...
在Android开发中,设置界面是应用中不可或缺的一部分,它为用户提供了一种自定义应用行为和配置的方式。本实例聚焦于如何设计一个精仿QQ风格的设置界面,这将涉及到多个关键知识点,包括布局管理、控件使用、数据...
1. **AndroidPreference**: 这个例子涉及到Android的偏好设置(SharedPreferences)。SharedPreferences提供了一种轻量级的数据存储方式,用于存储简单的键值对数据,如用户设定的应用设置。通过PreferencesScreen...
Preference首选项用于管理用户设置,让应用可以根据用户偏好自定义行为。 访问本地文件系统和SQLite数据库是存储数据的常见方式,教程会教授如何读写文件以及如何使用SQLite进行数据持久化。 Content Provider作为...
通过研究这个源码资源,开发者可以学习如何在Android应用中实现用户自定义的情景模式设置,以及如何与其他系统组件如广播、服务和通知协同工作。这对于提高用户体验和打造特色应用具有重要意义。
在Android开发中,创建一个颜色选择器是常见的需求,特别是在设置界面中,用户可能需要自定义界面的主题色或字体颜色。本教程将详细介绍如何在Android的设置界面实现一个颜色选择器。 首先,我们需要理解Android的...
2. **Preference**:Settings应用大量使用了Preference类,这是Android中用于创建设置界面的UI组件。Preference包括各种类型的设置项,如开关按钮(SwitchPreference)、选择列表(ListPreference)等。在源码中,...
- **Eclipse 3.4**:集成开发环境(IDE),用于编写和调试Android应用程序。 - **Android SDK 1.5**:软件开发工具包,包含了开发Android应用程序所需的工具和库。 #### 三、下载与安装 1. **JDK 1.6** - 下载地址...
2. **PreferenceScreen**: 在XML布局文件中,`<preference-screen>`元素用于创建一个设置屏幕,而`<preference>`元素则表示具体的设置项。`PreferencesManager`可能包含对这些元素的扩展,以实现自定义的UI和交互。 ...
2. 继承`PreferenceActivity`:自定义一个Activity,让它继承自`PreferenceActivity`。 3. 加载布局:在`onCreate()`方法中,使用`addPreferencesFromResource()`方法加载之前创建的XML布局。 4. 监听用户操作:可以...
该书由gasolin编写,主要面向希望深入了解Android开发技术的读者。通过一系列实践案例,本书旨在帮助读者全面掌握Android应用程序的设计与实现。 #### 二、核心知识点概述 1. **Android简介** - **定义与背景**:...
在Android开发中,PreferenceFragment是用于展示用户设置界面的一个关键组件。它允许开发者方便地创建具有各种设置选项的界面,这些选项通常与SharedPreferences对象交互,保存用户的偏好设置。本篇文章将深入探讨...
在Android原生的框架中,Preference组件用于构建设置界面,用户可以通过它来更改应用程序的各种设置。然而,原生的Preference组件样式较为传统,可能无法满足现代应用对设计美感的需求。MaterialPreference库就解决...
在Android开发中,有时我们需要为用户提供自定义颜色选择的功能,比如设置应用主题色或个性化界面颜色等。这时,`ColorPickerPreference`就派上了用场。`android-ColorPickerPreference`是一个开源项目,旨在为...
3. **LiveData集成**:与Android架构组件兼容,使得偏好设置可以实时更新并响应视图的变化。 4. **减少样板代码**:通过处理器自动生成存取方法,减少了大量重复的代码编写。 5. **更好的调试体验**:由于所有设置都...
- 自定义设置页面往往涉及到对Android原生`Preference`组件的扩展或自定义View的创建。开发者可以通过继承`Preference`类来创建新的设置项,或者直接继承`View`或`ViewGroup`来设计独特的界面元素。 6. **...