【发布时间】:2016-07-07 06:04:53
【问题描述】:
我知道我的主线程中有很多事情要做,但我正在寻找解决方法。
这是我的应用程序的结构:
目前我有我的主要活动,它有 6 个可点击的图像视图(打开新活动),当打开其中一个活动时会出现问题。在这个活动中,我使用了一个带有 3 个选项卡的 SlidingTabLayout。
这就是我想要达到的目标:
我正在用可绘制对象(形状)创建一架钢琴
例如,这是黑键:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dp"
android:color="#FF000000" />
<solid
android:color="#FF000000"/>
</shape>
然后我在布局中调用这个可绘制对象来创建钢琴:
<ImageView
android:layout_width="8dp"
android:layout_height="37dp"
android:layout_marginLeft="40dp"
android:layout_marginStart="10.5dp"
android:src="@drawable/key_black" />
我为每个钢琴显示 7 个黑键图像视图和 10 个白键图像视图,每个选项卡有 11 个钢琴。所以每个标签有 187 个 Imageview。
所以我知道这会对我的 CPU 造成严重影响。我正在寻找一种方法来对我的主线程执行此操作?在后台做?要做到这一点而不会遇到滞后?
【问题讨论】:
-
你能提供一张应该是什么样子的图片并解释你想要达到什么/应该做什么吗?显然您希望用户与钢琴的键进行交互?但是 187 个可交互的项目在一个屏幕上似乎有点多
-
我只想显示钢琴的,我不希望用户与之交互。
-
那为什么你需要将键放在单独的图像视图中呢?如何在 .png 中或使用 Android 形状创建整个钢琴,然后将其放在一个 imageView 中?还是应该动画?
-
每架钢琴显示不同的按键,所以每架钢琴看起来都不同,所以使用钢琴的一个 png 是行不通的。为每架钢琴使用多个 png 会导致同样的问题。
标签: android xml multithreading imageview lag