首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在kotlin/android中显示setBackgroundResource()需要很长时间

在Kotlin/Android中,使用setBackgroundResource()方法来设置背景资源可能需要较长的时间。setBackgroundResource()方法用于将指定的资源文件设置为视图的背景。这个方法可能需要较长的时间是因为它涉及到以下几个方面:

  1. 资源加载:当调用setBackgroundResource()方法时,系统会尝试从资源文件中加载指定的背景资源。这个过程涉及到文件的读取和解码,如果资源文件较大或者解码过程复杂,加载时间可能会较长。
  2. UI线程阻塞:在Android中,UI操作必须在主线程(也称为UI线程)中执行。当调用setBackgroundResource()方法时,如果资源加载过程耗时较长,会导致UI线程被阻塞,从而影响用户界面的响应性能。

为了解决这个问题,可以考虑以下几点优化措施:

  1. 异步加载:可以使用异步加载的方式来加载背景资源,以避免阻塞UI线程。可以使用Kotlin协程或者Android的异步任务(AsyncTask)来实现异步加载。
  2. 图片压缩和优化:如果资源文件是图片,可以对图片进行压缩和优化,以减少加载时间。可以使用Android提供的工具或者第三方库来进行图片压缩和优化。
  3. 缓存机制:可以考虑使用缓存机制来缓存已加载的资源,以避免重复加载。可以使用内存缓存或者磁盘缓存来实现资源的缓存。
  4. 异步任务取消:如果在资源加载过程中用户取消了操作或者视图被销毁,应该及时取消异步任务,避免资源加载完成后无效的操作。

总结起来,为了在Kotlin/Android中显示setBackgroundResource()方法时减少加载时间,可以采取异步加载、图片压缩和优化、缓存机制等优化措施。同时,也可以考虑使用腾讯云提供的相关产品来加速资源加载,例如腾讯云的图片处理服务、内容分发网络(CDN)等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在Android中显示APNG动图

三、在Android中显示APNG动图 这里使用了一个开源库来解析加载APNG图,apng-view 使用示例: String url = "http://xxx.png"; imageView.setOnClickListener...imageView); 效果图: [jhs51xdt38.gif] 四、apng-view源码分析 实现过程 先看看apng-view实现过程: [实现过程] (1)图片的下载/加载:通过图片加载开源库Android-Universal-Image-Loader...[batn8vbhrw.png] 源码解读 (1)prepare 先从图片文件读取这里说起,图片读取是在ApngDrawable这个prepare()方法中进行的; // 文件路径:com/github...instanceof PngChunkFCTL) { fctlArrayList.add((PngChunkFCTL) chunk); // 收集帧动画控制的数据块 } } } 这个过程大体上就是在解析这个...= null) apngListener.onAnimationRepeat(this); } currentFrame++; } 绘制动图的核心代码在drawAnimateBitmap方法里: private

17K20

Kotlin中的协程及在Android中的应用

Kotlin的一个协程可以理解为是运行在线程上的一个执行任务并且该任务可以在不同的线程间切换,一个线程可以同时运行多个协程。...从开发者角度来看:kotlin协程可以实现以同步的方式去编写异步执行的代码,解决线程切换回调的嵌套地狱。 协程挂起时不需要阻塞线程,几乎是无代价的。...协程调度器 Kotlin给我们提供了四种调度器 Default:默认调度器,CPU密集型任务调度器,通常处理一些单纯的计算任务,或者执行时间较短任务。...比如:网络请求,数据库操作,文件操作等 Main:UI调度器,只有在UI编程平台上有意义,用于更新UI,例如Android中的主线程 Unconfined:非受限调度器,无所谓调度器,当前协程可以运行在任意线程上...最常见的,网络请求在IO线程,而页面更新在主线程。 Kotlin给我们提供了一个顶层函数withContext用于改变协程的上下文并执行一段代码。

19010
  • 在 Fragment 当中使用 Kotlin-Android-Extensions 需要注意的

    自从有了 kotlin-android-extensions,小伙伴们的感觉就是一个字,爽!再也不用什么 findViewById 了,也不用什么反射和注解注入了,吾有奇招,黄油刀们速速退散! 1....何为 kotlin-android-extensions ?...android:text="退出登录"/> 通常来讲,如果你想要在你的代码当中操作这个 View,例如给他设置一个点击事件,你需要先 findViewById 找到它的引用,然后 setOnClickListener...可是有了 kotlin-android-extensions 之后,我们可以直接在 Activity、 Fragment、 View 当中使用这个 logoutView 了。...关于这个问题,我在将近一年前的一篇文章当中提到过,就是一些编译期的黑魔法啦,不信我们来看下刚才那段 Kotlin 代码对应的字节码: L5 LINENUMBER 43 L5 ALOAD

    1.7K10

    Kotlin 委托属性在Android开发中的几个使用场景!

    Kotlin 真的是一门美丽的开发语言,她拥有的一些很棒的特性使 Android 开发变成的有趣和令人兴奋。...但是,它虽然简单,却非常有用,让我们来看一些在 Android 开发中的例子。 你可以在官方文档中了解更多关于委托属性的内容。...Fragment 的 arguments,以便可以在onCreate中获取。...我们把这个类型设为非空的,并且在不能读取时抛出了异常,这让我们可以在 Fragment 中获取非空的值,避免了空值检查。...总结 我们看来一些在 Android 开发中使用 Kotlin 委托属性的例子。当然了,你也可以用别的方式来使用它。 这篇文章的目标是展示委托属性是多么强大,以及我们可以用它做什么。

    4.6K41

    在TextView前面(或后面)添加文本(或者图片)标签

    不过这几年,UI设计基本很少见到这种设计了,不过还是有些时候,还是会遇到一些在文本前加标签需求。...其实我就是把常用的一些方法写到一起,供大家调用,而且不用修改原来的代码就可以设置标签,当然还有一些其他方法(比如:下划线,删除线,格式文本颜色,超链等等),只需要调用对应方法就可以了,节约大波时间。...在XML中引用即可(其中一种方式举例): <com.view.text.TagTextView android:id="@+id/tagTextView8" android...,自定义中只有tvt_tag_space、tvt_text_space、tvt_tag_location、tvt_first_tag_left_space字段有效 ​ MutableList:多个标签...Bitmap:图片标签,如果是一个只需要传入一个Bitmap,多个就传入多个Bitmap Int:图片标签,如果是一个只需要传入一个DrawableRes,多个就传入多个DrawableRes

    2.7K20

    使用 curl 下载需要太长时间?试试在 cURL 中设置超时

    几乎所有设备都使用地球上连接到 Internet 的 cURL,cURL 最广泛的用途是从终端中的远程服务器下载文件。...要了解有关在 cURL 中设置最大超时的更多信息, 使用“--connect-timeout”选项 cURL 有一个可选标志“--connect-timeout”,您可以在其中指定持续时间(以秒为单位)...另一种“--max-time”选项 当您在批处理中执行多个操作时,使用“--max-time”标志,这个标志将设置整个操作的持续时间——比如下载一个大文件,因此,如果操作(例如下载文件)花费的时间超过指定的时间...当“连接服务器”+“下载文件时间”的总时间大于我们这里指定的 20 秒时,将终止下载。 在这种情况下,文件大小太小,下载时间不会超过 20 秒,因此命令将成功执行。...结论 本文介绍了如何为连接到远程服务器的时间或整个网络操作的超时设置最大持续时间(超时)。

    3.9K30

    Kotlin 自定义 标签viewgroup

    android 对于kotlin语言做了强调转移过后,kotlin逐渐取代java,成为Android开发语言中极为重要的语言之一。...涉及到kotlin语法的相关知识我就不多说了,今天就项目需求,自定义一个viewgroup作标签视图来使用进项目中去。...,同时让我们现在的viewgroup的宽高在程序中可以进行控制处理,不会让视图错乱。...3、控制子view的点击与显示 在使用angular过后明白了一点,数据绑定耐前端开发人员最核心最核心的思想,于是我们这里可以借鉴angular的数据绑定思想来控制我们的view的高亮显示: ?...几种自定义属性.png 由于本身根据子控件进行测量显示,子控件只需要控制textview的textsize就可以实现不同屏幕的适配了,这里我封装了一个textview屏幕适配的类:DimenUtil。

    1.2K30

    Android 天气APP(十一)未来七天的天气预报、逐小时预报、UI优化

    图标名中带“ n ”的是表示晚上,不带的就是白天的,你也可以改成白色的,并且在APP上增加现在是白天还是晚上的状态判断,也算是进一步优化,这个目前先不做。...,发现有好几个天气代码的图标是一模一样的,所以代码中判断显示的时候会有几个状态码对应的图标一样,提前说明,不要见怪。...android:layout_height="wrap_content"/> 然后在WeatherUtil.java中再增加一个方法showTimeInfo /**...* 根据传入的时间显示时间段描述信息 * @param timeData * @return */ public static String showTimeInfo...android:layout_height="wrap_content"/> 接下来就是在MainActivity.java中渲染数据了。

    91120

    【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题

    ViewPager出现的问题 ViewPager占满全屏问题 : ViewPager在XML中定义了android:layout_height 和 android:layout_width 之后, 不论这两个属性的值是...解决方案  代码中添加组件 : 不在XML界面定义该组件, 可以在布局文件中,定义一个LinearLayout容器, 然后在代码中动态添加ViewPager; 好处 : 这样的好处是可以在代码中获取屏幕的宽高...返回代表新的一页的对象; boolean isViewFromObject(View view, Object object) :  作用 :决定instantiateItem()方法返回的Object对象是不是需要显示的页面关联...[i]); } } ViewPager页面改变时圆点导航随之改变 : 获取ViewPager当前显示页面索引,重新组装ViewGroup中的圆点排列顺序, 这个方法在ViewPager...自动翻页导航策略 线程中处理自动翻页 : 启动一个线程, 获取当前页面显示索引, 计算出下一个显示位置, 显示下一个页面; .

    1.1K20

    IM在群组中接收后端发送来的消息,需要显示还需要保存在本地,应该怎么处理呢?

    内有一个领取红包的消息通知,是通过服务端推送过来的消息(服务端使用的方法如下图) image.png image.png 目前已经知道IMSDK会有收到群内系统推送的方法(如下) image.png 在TUIKit...中回调了这个方法后发送了一个通知 image.png 如果您是用了TUIkit的话,您只要注册这个通知即可接受到消息,并调用自己的方法 image.png 保存本地并显示消息 现将这条消息保存到本地,我们可以使用一下...api来保存消息 /** * 4.8 向群组消息列表中添加一条消息 * * 该接口主要用于满足向群组聊天会话中插入一些提示性消息的需求,比如“您已经退出该群”,这类消息有展示 * 在聊天消息区的需求...message to:groupId sender:@" " succ:^{ } fail:^(int code, NSString *desc) { }]; 显示消息

    1.9K10

    android 在 ListView 的 item 中插入 GridView 仿微信朋友圈图片显示。

    然后我们需要两个数据辅助类,类似上述,一个是专门来保存在GridView中要显示的每张图片的信息,例如它的url、name、id等等,暂称该辅助类为 UserImgs,大家可以随便增删,另一个是总的专门保存...listView中的item的数据,我们称它为UserInfo,这里,说明下,因为每条 item 都有一个自己的GridView,也就是说,UserInfo中必须要有一个UserImgs类实例,用来存储图片信息...String usertext; // 帖子内容 13 private String username; // 用户名称 14 private String usertime; // 发帖时间...,在不同的 item 上面 96 holder.gridView.setVisibility(View.GONE); 97 holder.gridView.setAdapter...GridView上面,再返回此 View,然后显示到 ListView 的 item 上面。

    2.4K50

    Android开发笔记(十九)底部标签栏TabBar

    底部标签页实现思路 现在的APP,大多在页面底部显示标签栏Tabbar,用于切换不同栏目的页面。...为此我们在Android实现底部标签栏,得额外进行底部适配处理,适配思路基本都是在底部罗列一排的按钮,然后根据点击不同的按钮,跳到不同的Activity页面。...其中在布局文件中设置TabHost、TabWidget和RadioButton,在代码文件中应用TabActivity、TabSpec和CompoundButton。...在toActivity函数中可以看到,startActivity方法返回一个Window对象,系统从该Window对象提取标签页的实际视图getDecorView(我们可以把DecorView理解为该标签页的根视图...),然后这个DecorView加入到Tabbar的视图容器中。

    5.2K21

    Android项目实战(二十九):酒店预定日期选择

    如果“开始日期” “结束日期” 不同,且“结束日期” 晚于 “开始日期”    (3)、如果“结束日期” 早于 “开始日期” ,重置当前 日期 为 “开始日期” 3、选择的“开始日期” “结束日期” 显示在...position,不是月份 private int dayPosition; //属于的日期位置,注意是该日期在每个月(内层列表)中的位置 public DayTimeEntity...android:layout_height="wrap_content" android:text="开始\n时间" android:layout_alignParentTop..." android:layout_height="wrap_content" android:text="结束\n时间" android...> (2)、日历外部RecyclerView的ViewHolder类,可以看出外层RecyclerView 的 item 只需要一个TextView显示几年几月 和 一个

    1.5K20

    Android项目实战(二十九):酒店预定日期选择

    如果“开始日期” “结束日期” 不同,且“结束日期” 晚于 “开始日期”    (3)、如果“结束日期” 早于 “开始日期” ,重置当前 日期 为 “开始日期” 3、选择的“开始日期” “结束日期” 显示在...position,不是月份 private int dayPosition; //属于的日期位置,注意是该日期在每个月(内层列表)中的位置 public DayTimeEntity...android:layout_height="wrap_content" android:text="开始\n时间" android:layout_alignParentTop..." android:layout_height="wrap_content" android:text="结束\n时间" android...> (2)、日历外部RecyclerView的ViewHolder类,可以看出外层RecyclerView 的 item 只需要一个TextView显示几年几月 和 一个

    1.4K40

    AnimationDrawable 实现正在加载的旋转动画

    推荐用XML文件的方法实现Drawable动画,不推荐在代码中实现。 这种XML文件存放在工程中res/drawable/目录下。 XML文件的指令(即属性)为动画播放的顺序和时间间隔。  ...在XML文件中元素为根节点,节点定义了每一帧,表示一个drawable资源的帧和帧间隔。...实现: 了解上面的原理之后,我们接下来实现文章开头图片所示的功能, 首先需要的可能是:XML文件的指令(即属性)为动画播放的顺序和时间间隔。 <?...animationDrawable.start(); } }); } } 最后就是  相应的activity中需要怎么使用就可以了...因为AnimationDrawable并未完全关联到Window, 在onCreate()方法中,View并未完成显示(同理,在此方法中测量某个View的宽高,常得到0值。

    2.1K80

    Kotlin 会取而代之吗

    阅读本文大概需要 4 分钟。 转自:DEV社区 Stackoverflows上的趋势图显示Java从2015年以后走下坡路,而Kotlin开始上升。...Kotlin只是编译与Java完全相同的事情,这对于增量迁移来说是一个巨大的优势,特别是在大型,缓慢移动的企业中。 2. 这是一个很好的总结。...特别是Android的采用使得想要在iOS上使用相同的代码很自然,因此Kotlin / Native诞生了。...向上趋势肯定表明增长,但下降趋势......可能只是成熟和时间的标志,不一定是人气下降。 7. 在讨论Java时,企业环境会被提及很多,但在非企业环境中也是如此,任何人都在做数据科学。...10.我认为我们会看到Java逐渐下降是一种非常受欢迎的语言,特别是在普通大学生中 - 我喜欢相信大学已经将Java推向学生很长一段时间了。

    98310

    Android自定义指示器时间轴

    由于时间轴的点和线都位于item布局中,为了使线是连续的,所以设置上面ListView的dividerHeight属性值为0dp,即垂直方向每个列表项都是紧挨着的。...在item的布局中,我们先使用LinearLayout将布局分成左右两个部分,左边就是时间轴的布局,右边是内容的布局。...内容的布局,物流信息是一个RelativeLayout,为了不使两个列表项的文本靠得太近,在RelativeLayout中设置其paddingBottom和paddingTop属性。...时间轴的布局,时间轴的布局也是一个RelativeLayout,为了使时间轴的圆点和显示时间的文本对齐,我们需要在圆点之上再放置一条竖线,所以整体的布局就是 线 - 点 - 线。...由于第一行的物流信息的显示形式和其他的不一样,所以要注意第一行的item的时间轴布局中最上面的线不显示 public class StepViewAdapter extends BaseAdapter

    52310

    自定义广告图片轮播View——CarouselView

    因为一个广告机的需求,需要做一个广告轮播的效果,不需要什么特别的动画,正常的轮播就可以了。笔者看了网上很多文章,要么不好用,要么就是效果太多,太复杂,用不上。...索性自己写了一个简单的View,可以支持普通的广告轮播,目的在轻量级,使用简单。 效果图: ?...简单说下需求: 底部Item指示器 图片文字描述显示 图片轮播 使用简单,使用者不需要考虑除了放图片以外的任何逻辑 重点实现: 首先是改View的xml,CarouselView中封装了ViewPager...所以我们需要控制position的值防止下标越界。...="1"/> 在Activity中获取引用的CarouselView,构建CarouselBean的ArrayList,调用CarouselView的init方法完成。

    1.9K20
    领券