setBackgroundResource()需要很多时间才能在kotlin / android中显示

时间:2019-04-17 18:49:47

标签: android kotlin

我正在使用setBackgroundResource在单击时设置布局中每个单元格的背景。根据条件,为单元格设置了不同的背景可绘制对象。

但这会花费很多时间,有时当我单击cell4时什么也没发生,然后当我单击cell6时,cell4背景改变了,有时很长一段时间后也会改变。我该如何解决?

我在下面附加了部分代码:

if(cell.getTag()==11){
            cell.isSelected=false
            cell.setTag(0xFFFFFFFF.toInt())
            textView.setTextColor(0xFF87CEEB.toInt())
            cell.setBackgroundResource(R.drawable.bordered_rectangle)
}
else if(isChecked || cell.getTag()==22) {
            cell.isSelected=true
            cell.setTag(11.toInt())
            textView.setTextColor(0xFF000000.toInt())                                      
            cell.setBackgroundResource(R.drawable.border_boardselect)
}

R.drawable.bordered_rectangle

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
<stroke android:width="3dp" android:color="#ff444444" />
<padding android:left="2dp"
    android:top="2dp"
    android:right="2dp"
    android:bottom="2dp" />
<!--<solid android:color="#ffffff" />-->

    <gradient
        android:angle="45"
        android:endColor="#87CEEB"
        android:centerColor="#768087"
        android:startColor="#000"
        android:type="linear" />
</shape>

我尝试将drawable放在drawable-nodpi文件夹中。我不知道该怎么办。 真的需要一些帮助。

1 个答案:

答案 0 :(得分:0)

这可能只是一个假设,但可能是渐变。

但是,从您的代码中,我建议您使用选择器而不是2个不同的Drawable。至少将使代码更小,更不会混淆。

您对此有何看法?视图本身可能很难绘制背景,因为与图像相比,背景非常沉重。