gpt4 book ai didi

java - 单击按钮时 ImageView 背景不会平滑变化

转载 作者:行者123 更新时间:2023-12-01 15:13:13 25 4
gpt4 key购买 nike

我正在编写一个简单的应用程序,可以在单击按钮时随机更改应用程序背景。

我有一个数组列表,其中包含应用程序应使用的 5 个图像 ID:

    ArrayList<Integer> imageID = new ArrayList<Integer>();
imageID.add(R.drawable.frame_blue);
imageID.add(R.drawable.frame_green);
imageID.add(R.drawable.frame_lilac);
imageID.add(R.drawable.frame_pink);
imageID.add(R.drawable.frame_yellow);

我的布局 xml 文件中有两个按钮,分别用于下一个上一个。单击时两者都应更改应用程序背景。

我从此数组列表更改图像背景:

iM.setBackgroundResource(imageID.get(r.nextInt(5)));

我的布局 xml 如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/parentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="76dp"
android:onClick="previous"
android:text="Previous" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_alignParentRight="true"
android:onClick="next"
android:text="Next" />

</RelativeLayout>

单击按钮时一切正常,ImageView 背景按照我的预期发生变化,但问题是背景变化不流畅。

它挂起了一段时间。可能主 UI 线程将被阻塞 1 或 2 秒,这看起来像应用程序挂起。

挂起意味着:某个时间按钮保持点击状态几秒钟。

我尝试了 asynctask 没有成功。有没有办法让它顺利变化?

最佳答案

您需要使用缓存以节省时间并且不会每次都膨胀图像 像这样:Drawable image_frame_green = getResources().getDrawable(
R.drawable.frame_green);

关于java - 单击按钮时 ImageView 背景不会平滑变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12020838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com