单例模式在android中的应用
项目演示及讲解
爱奇艺 http://www.iqiyi.com/w_19rtfb03pp.html
土豆http://www.tudou.com/programs/view/M1R6cIW15DY/
项目下载
http://download.csdn.net/detail/u010134178/9052163
什么是单例模式
百度“java 单例”
以下是通过一个简单的列子来说明它的用户,别看这简单的例子,在公司项目里这可是最基本的呀
1、一个图片池类
publicclassImagePool{privatestaticContextmContext;privatestaticBitmapmBitmap;privatestaticImagePoolmInstance;publicImagePool(Contextcontext){mContext=context;mBitmap=BitmapFactory.decodeStream(context.getResources().openRawResource(R.drawable.zheng));}publicstaticImagePoolgetInstance(Contextcontext){if(null==mInstance){mInstance=newImagePool(context);}returnmInstance;}publicstaticImagePoolgetInstance(){returnmInstance;}/***外部数据接口**@return*/publicBitmapgetBitmap(){returnmBitmap;}/***设置**@return*/publicvoidsetBitmap(intid){mBitmap=BitmapFactory.decodeStream(mContext.getResources().openRawResource(id));}}
一个Applaction层的全局变量
publicclassMyApplicationextendsApplication{@OverridepublicvoidonCreate(){super.onCreate();//initImagePool.getInstance(getApplicationContext());}}
在业务中的基本用法
publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);finalImageViewp_w_picpath=(ImageView)findViewById(R.id.p_w_picpathId);Buttonchange=(Button)findViewById(R.id.changeId);Buttonstart=(Button)findViewById(R.id.startId);Drawabledrawable=newBitmapDrawable(ImagePool.getInstance().getBitmap());p_w_picpath.setBackgroundDrawable(drawable);change.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){ImagePool.getInstance().setBitmap(R.drawable.chuan);Drawabledrawable=newBitmapDrawable(ImagePool.getInstance().getBitmap());p_w_picpath.setBackgroundDrawable(drawable);}});start.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Intentintent=newIntent(MainActivity.this,OtherActivity.class);startActivity(intent);}});}}
好了,其实就这么简单。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。