当我在布局上使用资源背景时,太慢滚动GridView android

时间:2014-05-09 22:59:44

标签: android performance android-layout android-listview android-gridview

让我解释一下我的问题。

当我在相对根布局上使用资源背景时,GridView滚动速度太慢。 我的后台文件大小是114KB。

我使用 android:cacheColorHint =“#00000000” android:overScrollMode =“never”但没有成功。 这是我的xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/bg"
android:layout_width="match_parent"
android:layout_height="match_parent">

<GridView
    android:layout_width="match_parent"
    android:layout_height="125dp"
    android:id="@+id/useful_applications"
    android:layout_marginTop="35dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:choiceMode="singleChoice"
    android:cacheColorHint="#00000000"
    android:overScrollMode="never"
    android:clickable="true"
    android:numColumns="4"
    android:gravity="center"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="15dp" />

</RelativeLayout>

我将ArrayAdapter与holder模式一起使用。

任何人都可以帮助我吗?

更新1: 这是我使用holder pattern

的适配器getView
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    UsefulApplicationHolder holder;

    if (convertView == null) {
        convertView =LayoutInflater.from(mContext).inflate(R.layout.component_application_icon, parent, false);

        holder = new UsefulApplicationHolder();
        holder.icon = (ImageView) convertView.findViewById(R.id.icon);
        holder.score = (TextView) convertView.findViewById(R.id.score);
        convertView.setTag(holder);
    } else {
        holder = (UsefulApplicationHolder) convertView.getTag();
    }

    Apps info = getItem(position);
    holder.icon.setImageDrawable(info.getIcon());
    String score = info.getScore();

    if (Integer.valueOf(score) > 0) {
        holder.score.setTextColor(mContext.getResources().getColor(R.color.green));
        score = "+" + score;
    } else if (Integer.valueOf(score) < 0) {
        holder.score.setTextColor(mContext.getResources().getColor(R.color.red));
    } else {
        holder.score.setTextColor(mContext.getResources().getColor(R.color.light_gray));
    }

    holder.score.setText(score);

    return convertView;
}

0 个答案:

没有答案