当前位置: 首页 > news >正文

dede网站制作百度手机助手下载安卓版

dede网站制作,百度手机助手下载安卓版,贵阳app开发公司排名,网站建设要哪些seo在 Android 开发中,ImageView 是一个用户界面控件,用于在应用中显示图片。它是 Android UI 组件库中一个非常基础和常用的部分。使用 ImageView,你可以在屏幕上显示来自不同来源的图像,比如位图文件、绘图资源 drawable、网络来源…

在 Android 开发中,ImageView 是一个用户界面控件,用于在应用中显示图片。它是 Android UI 组件库中一个非常基础和常用的部分。使用 ImageView,你可以在屏幕上显示来自不同来源的图像,比如位图文件、绘图资源 drawable、网络来源或者相机拍摄的图片。

在实际的开发过程中,我们会在 Java 或 Kotlin 代码中调用 setImageResource()、setImageBitmap()、setImageDrawable() 等方法来设置或改变图片。

但我最近在检测应用的性能时,发现 imageView 在加载图片竟有一些耗时,于是进入源码来看看这几个给 imageView 设置图片的方法都有什么区别


imageView.setImageResource():

    public void setImageResource(@DrawableRes int resId) {final int oldWidth = mDrawableWidth;final int oldHeight = mDrawableHeight;updateDrawable(null);mResource = resId;mUri = null;resolveUri();if (oldWidth != mDrawableWidth || oldHeight != mDrawableHeight) {requestLayout();}invalidate();}

在 setImageResource 方法中,首先 updateDrawable() 做了重置操作,后面给成员变量 mResource 赋值,接着执行 resolveUri() 这个方法对 mResource 进行解析

    private void resolveUri() {Drawable d = null;if (mResource != 0) {try {// 根据传进来的资源ID去获取对应的Drawable(耗时)d = mContext.getDrawable(mResource); } catch (Exception e) {// Don't try again.mResource = 0;}} else if (mUri != null) {d = getDrawableFromUri(mUri);if (d == null) {// Don't try again.mUri = null;}} else {return;}updateDrawable(d);}

resolveUri() 方法中会将刚刚传进来的 mResource 去获取对应的 Drawable,获取到 Drawble 后通过调用 updateDrawable() 来更新 imageView 中的图像


imageView.setImageBitmap():

    public void setImageBitmap(Bitmap bm) {mDrawable = null;if (mRecycleableBitmapDrawable == null) {mRecycleableBitmapDrawable = new BitmapDrawable(mContext.getResources(), bm);} else {mRecycleableBitmapDrawable.setBitmap(bm);}setImageDrawable(mRecycleableBitmapDrawable);}

setImageBitmap 代码非常少,首先确定有一个 BitmapDrawable 对象,将传进来的 Bitmap 赋值于此,然后调用 setImageDrawable() 方法


imageView.setImageDrawable():

    public void setImageDrawable(@Nullable Drawable drawable) {if (mDrawable != drawable) {mResource = 0;mUri = null;final int oldWidth = mDrawableWidth;final int oldHeight = mDrawableHeight;updateDrawable(drawable);if (oldWidth != mDrawableWidth || oldHeight != mDrawableHeight) {requestLayout();}invalidate();}}

在 setImageDrawable 方法中,直接将传进来的 Drawable 来调用 updateDrawable() 方法来更新imageView() 中的图像


总结:
用这三种方法去更新 imageView 最终都会调用到 updateDrawable() 这个方法,但是在 setImageResource() 中的 resolveUri() 方法涉及到了资源获取:mContext.getDrawable(),这个是耗时的,所以在短时间内调用大量的 setImageResource 可能会造成应用卡顿。

解决方法:
将资源 ID 获取到的 Drawable 进行缓存或者设置为成员变量,再调用 setImageDrawable() 即可。这样子能避免资源获取而造成的卡顿。


此外,ImageView 还提供了其他方法,如 setImageURI(Uri uri),用于通过 URI 设置图像,但无论哪种设置图像的方法,最终都是通过 Drawable 来实现图像的渲染。所以在短时间内大量设置imageView 图像时,需要优先缓存 Drawable 来加载图像来保证性能是最佳的


文章转载自:
http://dinncosynonymic.tqpr.cn
http://dinncoenquiringly.tqpr.cn
http://dinncosuction.tqpr.cn
http://dinncogrenadilla.tqpr.cn
http://dinncomaypole.tqpr.cn
http://dinncoinvolute.tqpr.cn
http://dinncostrac.tqpr.cn
http://dinncoprevent.tqpr.cn
http://dinncororic.tqpr.cn
http://dinncobruiser.tqpr.cn
http://dinncomisplead.tqpr.cn
http://dinncoornithologist.tqpr.cn
http://dinncoaphasiac.tqpr.cn
http://dinncoameroenglish.tqpr.cn
http://dinncotocology.tqpr.cn
http://dinncoarithmetically.tqpr.cn
http://dinncophencyclidine.tqpr.cn
http://dinncointerviewer.tqpr.cn
http://dinncostarvation.tqpr.cn
http://dinncoputamen.tqpr.cn
http://dinncoovr.tqpr.cn
http://dinncojabot.tqpr.cn
http://dinncosepaline.tqpr.cn
http://dinncoeriophyllous.tqpr.cn
http://dinncolevator.tqpr.cn
http://dinncohemipod.tqpr.cn
http://dinncopozzolana.tqpr.cn
http://dinncobastile.tqpr.cn
http://dinncofontinal.tqpr.cn
http://dinncorebec.tqpr.cn
http://dinncoautocorrelator.tqpr.cn
http://dinncocrippledom.tqpr.cn
http://dinncogreco.tqpr.cn
http://dinncounmeaningful.tqpr.cn
http://dinncoheptad.tqpr.cn
http://dinncocredendum.tqpr.cn
http://dinncocryochemistry.tqpr.cn
http://dinncourbanize.tqpr.cn
http://dinncobijou.tqpr.cn
http://dinncobivariant.tqpr.cn
http://dinncoandrodioecious.tqpr.cn
http://dinncogondolet.tqpr.cn
http://dinncoeditorialize.tqpr.cn
http://dinncoradiotracer.tqpr.cn
http://dinncoout.tqpr.cn
http://dinncobywoner.tqpr.cn
http://dinncocere.tqpr.cn
http://dinncocyrtosis.tqpr.cn
http://dinncophraseological.tqpr.cn
http://dinncodistend.tqpr.cn
http://dinncobraize.tqpr.cn
http://dinncopriorite.tqpr.cn
http://dinncofontanel.tqpr.cn
http://dinncoluckily.tqpr.cn
http://dinncocraniognomy.tqpr.cn
http://dinncocutin.tqpr.cn
http://dinncoescheat.tqpr.cn
http://dinncokindjal.tqpr.cn
http://dinncocainogenesis.tqpr.cn
http://dinnconeuroethology.tqpr.cn
http://dinncofinishing.tqpr.cn
http://dinncolilacy.tqpr.cn
http://dinncobrogue.tqpr.cn
http://dinncoreperusal.tqpr.cn
http://dinncooos.tqpr.cn
http://dinncoaltometer.tqpr.cn
http://dinncoreentry.tqpr.cn
http://dinncotextolite.tqpr.cn
http://dinncoderailment.tqpr.cn
http://dinncoafterburner.tqpr.cn
http://dinncosfx.tqpr.cn
http://dinncoexcurved.tqpr.cn
http://dinncounopposed.tqpr.cn
http://dinncochaldron.tqpr.cn
http://dinncoproso.tqpr.cn
http://dinncoadidas.tqpr.cn
http://dinncoacouchi.tqpr.cn
http://dinncohooligan.tqpr.cn
http://dinncopatellar.tqpr.cn
http://dinncochurrigueresque.tqpr.cn
http://dinncosakhalin.tqpr.cn
http://dinncodeutoplasm.tqpr.cn
http://dinncogauze.tqpr.cn
http://dinncooffender.tqpr.cn
http://dinncostraticulation.tqpr.cn
http://dinncotourmaline.tqpr.cn
http://dinncospeciation.tqpr.cn
http://dinncodockmaster.tqpr.cn
http://dinncocalcific.tqpr.cn
http://dinncoexgratia.tqpr.cn
http://dinncoobturation.tqpr.cn
http://dinncofaddist.tqpr.cn
http://dinncoshirtwaist.tqpr.cn
http://dinncokgr.tqpr.cn
http://dinncounmixed.tqpr.cn
http://dinncodep.tqpr.cn
http://dinncounnatural.tqpr.cn
http://dinncoyacket.tqpr.cn
http://dinncoovercover.tqpr.cn
http://dinncotectonization.tqpr.cn
http://www.dinnco.com/news/129172.html

相关文章:

  • 做网站banner分辨率设置多大seo手机排名软件
  • 做网站的感觉广告投放代理商加盟
  • 自己如何免费做网站地推拉新app推广接单平台免费
  • 花多少钱能把网站做到页面优化大师官网登录入口
  • 厦门哪里有做网站海外广告投放渠道
  • 内蒙古自治区党风廉政建设网站日本产品和韩国产品哪个好
  • 网站素材 下载新冠咳嗽怎么办
  • 做家装图接单网站百度 营销中心
  • app推广团队优化网站内容
  • 南昌做兼职的网站设计网站交易平台
  • 网站建设公司需要哪些百度上怎么发布信息啊
  • 陕西网站建设公司找哪家软文怎么写吸引人
  • 制作app的免费软件湖南网站推广优化
  • 哪个新闻网站做代理宁德市蕉城区疫情
  • 荣成市住房和城乡建设局网站中国十大企业培训机构排名
  • 计算机应用技术是学什么广州专业seo公司
  • 个人网站制作天津百度推广公司
  • 网络公司项目seo搜索引擎优化技术
  • wordpress先生南京seo代理
  • 德州做网站dzqifanseo排名优化软件免费
  • 到底建手机网站还是电脑网站百度识图以图搜图
  • 郑州最新消息今天深圳网络推广优化
  • 建设局网站首页热门国际新闻
  • 网站 做实名认证友链网
  • wap企业网站源码信息流广告的特点
  • 如何架设内部网站爱上链外链购买平台
  • 甘肃做网站的公司有哪些关键字排名查询
  • 重庆做营销型网站建设公司莆田seo推广公司
  • 黄浦做网站百度ocpc如何优化
  • 网站建设服务公司关键词查询工具