单例模式在android中的应用
16lz
2021-01-26
项目演示及讲解
爱奇艺 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);finalImageViewimage=(ImageView)findViewById(R.id.imageId);Buttonchange=(Button)findViewById(R.id.changeId);Buttonstart=(Button)findViewById(R.id.startId);Drawabledrawable=newBitmapDrawable(ImagePool.getInstance().getBitmap());image.setBackgroundDrawable(drawable);change.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){ImagePool.getInstance().setBitmap(R.drawable.chuan);Drawabledrawable=newBitmapDrawable(ImagePool.getInstance().getBitmap());image.setBackgroundDrawable(drawable);}});start.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Intentintent=newIntent(MainActivity.this,OtherActivity.class);startActivity(intent);}});}}
好了,其实就这么简单。
更多相关文章
- android项目解刨之时间轴
- 【开源项目12】Retrofit – Java(Android) 的REST 接口封装类库
- Android(安卓)Studio--window下载安装及helloworld
- 导入一个android项目报错的解决办法
- ROS机器人项目开发11例-ROS Robotics Projects(6)Matlab和Android
- Android(安卓)将自己写的android library开源库上传github供大家
- 【边做项目边学Android】手机安全卫士04_01:界面(Activity)之间的切
- cocos2d-x 3.2 移植到android
- Android图片加载框架最全解析(一),Glide的基本用法