Android - 应用程序可能在其主线程上做了很多工作

时间:2016-07-07 06:04:54

标签: android xml multithreading imageview lag

我知道我必须在主线程中继续进行,但我正在寻找解决方法。

这是我应用的结构:

目前我有我的主要活动,它有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> 

然后我在我的布局中调用这个drawables来创建钢琴:

<ImageView
    android:layout_width="8dp"
    android:layout_height="37dp"
    android:layout_marginLeft="40dp"
    android:layout_marginStart="10.5dp"
    android:src="@drawable/key_black" />

我正在显示黑色键的7个Imageview和白色键的10个Imageview PER钢琴和我有11个钢琴PER标签。所以每个标签是187个Imageview。

所以我明白这对我的CPU来说会很苛刻。我正在寻找一种方法来做我的主线程?要在后台做吗?要做到这一点而不经历滞后?

1 个答案:

答案 0 :(得分:0)

如上所述,我会为钢琴创建一个基本图像,并根据当前按下的键进行调整。下面的代码显示了一般的想法:从R.drawable加载基本图像,使用按下的键的索引,以及创建Paths的图像的大小,绘制路径,返回图像。如果您需要澄清,请告诉我。

public int sum(int[] array) 
{
     return (int)array.stream().sum();
}