gpt4 book ai didi

android - 在类别之间移动时性能缓慢(项目导航 View )

转载 作者:行者123 更新时间:2023-11-30 00:33:54 24 4
gpt4 key购买 nike

我正在尝试创建具有不同类别的应用程序,每个类别都有一组图片,我从第一个类别(10 张图片)开始工作正常但是当我移动到另一个类别时我的应用程序运行缓慢。我'我正在使用 GridView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ArrayList<String> movieList = new ArrayList<>();
movieList.add("https://scontent-waw1-1.xx.fbcdn.net/v/t1.0- 9/18199348_430451573995024_7473960282002692779_n.jpg?oh=8667ffcd3ccb66892fcf4e7330f24e61&oe=59B88B8F");
View v = inflater.inflate(R.layout.fragment_art, container, false);
myGrid= (GridView) v.findViewById(R.id.gridViewCategory);
adapter =new CategoryAdapter(getActivity(),movieList);
myGrid.setAdapter(adapter);
return v;
}

}

class CategoryAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> imageId=new ArrayList<String>();
CategoryAdapter(Context context,ArrayList<String> imageId){
this.context=context;
this.imageId=imageId;
}
@Override
public int getCount() {
return imageId.size();
}
@Override
public Object getItem(int position) {
return imageId.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
class ViewHolder{
ImageView CategoryImage;
ViewHolder(View view){
CategoryImage = (ImageView) view.findViewById(R.id.cat_imageView);
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row=convertView;
ViewHolder holder=null;
if(row == null){
LayoutInflater inflater= (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
row=inflater.inflate(R.layout.picture_item,parent,false);
holder = new ViewHolder(row);
row.setTag(holder);
}
else{
holder=(ViewHolder) row.getTag();
} Glide.with(context).load(imageId.get(position)).placeholder(R.drawable.load).int o(holder.CategoryImage);
return row;
}

}

最佳答案

AsyncTasks 是您的 key !

//使用 AsyncTask 在后台线程中加载慢速图像

new AsyncTask<ViewHolder, Void, Bitmap>() {
private ViewHolder v;

@Override
protected Bitmap doInBackground(ViewHolder... params) {
v = params[0];
return mFakeImageLoader.getImage();
}

@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (v.position == position) {
// If this item hasn't been recycled already, hide the
// progress and set and show the image
v.progress.setVisibility(View.GONE);
v.icon.setVisibility(View.VISIBLE);
v.icon.setImageBitmap(result);
}
} }.execute(holder);

或者您可以在您的 GridView 上启用快速滚动。此外,如果您要切换到网格的新 View ,您可以回收不需要的位图。

如果这些都没有帮助,那么尝试使用像 Glide 这样的库。

希望这对您有所帮助!

关于android - 在类别之间移动时性能缓慢(项目导航 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745721/

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