单例模式在android中的应用

项目演示及讲解 

爱奇艺  http://www.iqiyi.com/w_19rtfb03pp.html

土豆 http://www.tudou.com/programs/view/M1R6cIW15DY/

项目下载

http://download.csdn.net/detail/u010134178/9052163

什么是单例模式

百度“java 单例”

以下是通过一个简单的列子来说明它的用户,别看这简单的例子,在公司项目里这可是最基本的呀

1、一个图片池类

public class ImagePool {

	private static Context mContext;

	private static Bitmap mBitmap;

	private static ImagePool mInstance;

	public ImagePool(Context context) {
		mContext = context;
		mBitmap = BitmapFactory.decodeStream(context.getResources()
				.openRawResource(R.drawable.zheng));
	}

	public static ImagePool getInstance(Context context) {
		if (null == mInstance) {
			mInstance = new ImagePool(context);
		}
		return mInstance;
	}

	public static ImagePool getInstance() {
		return mInstance;
	}

	/**
	 * 外部数据接口
	 * 
	 * @return
	 */
	public Bitmap getBitmap() {
		return mBitmap;
	}

	/**
	 * 设置
	 * 
	 * @return
	 */
	public void setBitmap(int id) {
		mBitmap = BitmapFactory.decodeStream(mContext.getResources()
				.openRawResource(id));
	}

}

一个Applaction层的全局变量

public class MyApplication extends Application{

	@Override
	public void onCreate() {
		super.onCreate();
		//init
		ImagePool.getInstance(getApplicationContext());
	}

}

在业务中的基本用法

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		final ImageView image = (ImageView) findViewById(R.id.imageId);
		Button change = (Button) findViewById(R.id.changeId);
		Button start = (Button) findViewById(R.id.startId);

		Drawable drawable = new BitmapDrawable(ImagePool.getInstance()
				.getBitmap());
		image.setBackgroundDrawable(drawable);

		change.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				ImagePool.getInstance().setBitmap(R.drawable.chuan);
				Drawable drawable = new BitmapDrawable(ImagePool.getInstance()
						.getBitmap());
				image.setBackgroundDrawable(drawable);
			}
		});

		start.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(MainActivity.this,
						OtherActivity.class);
				startActivity(intent);
			}
		});

	}

}

好了,其实就这么简单。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值