首页
学习
活动
专区
工具
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

16.4K20

Kotlin的协程及Android的应用

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

16610
  • 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.6K10

    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.6K20

    Android TextView显示图片的4种方式详解

    1、XML文件中指定属性值 这种方式应该是最常用的了,TextView的左上右下显示图片,可用 android:drawableLeft android:drawableTop android:...="@drawable/ic_launcher" android:text="hello_world" / 这种显示方式图片跟文本是居中对齐的,此种方式对应的方法是setCompoundDrawablesWithIntrinsicBounds...start和end值是用图片来取代的文本范围,flags是用来标识 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果。...文件引用自定义控件: <com.example.imageintextview.MyTextViewandroid:layout_width="wrap_content"android:layout_height...以上就是Android TextView显示图片的4种方式,每种方式都是自己的应用场景,大家根据自己的情况选择正确的方式

    6.3K20

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

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

    3.7K30

    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渲染数据了。

    85720

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

    ViewPager出现的问题 ViewPager占满全屏问题 : ViewPagerXML定义了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.3K50

    Android UI控件之Gallery实现拖动式图片浏览效果

    我们知道现在智能手机上都有这样一种功能,就是你浏览图片的时候。不是硬性的点击按钮而是可以实现手指的拖动,划开效果。使用户具有更好的交互体验,不过这种效果是如何实现的呢?...Android是通过Gallery来实现拖动效果的。 通过Gallery可以实现各种各样的效果,此篇文章只是简要谈谈他的用法,至于后续的一些效果 有机会的时候做一个整理。 首先看看其简单实现吧!...不过需要说明的是:图片不宜过大,否则容易内存溢出,android对大图片的支持不好! ? 我们来看看切换之后的效果吧 ? 看看重新设置一幅背景图片! ? 怎么样一个简单的效果就出来了吧!...getCount() { // TODO Auto-generated method stub return mImageIds.length; } //获取图片在库的位置...//设置布局图片以105*150显示 (简单解释——设置数字不一样,图片的显示大小不一样) imageView.setLayoutParams(new Gallery.LayoutParams

    85210

    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
    领券