android – 在回收者的cardview里做滑动图像的最好方法是什么?

我有一个RecyclerView与Cardviews.我想在这个CardView中滑动图像,就像在OLX应用程序中一样.这样做最好的方法是什么?
我想把看门人放在cardview里面.可以吗还是应该尝试别的东西?

我用ViewPager做了,但看起来太慢了.这是查看器适配器的一部分.

@Override
public Object instantiateItem(ViewGroup collection,int position) {

    LayoutInflater inflater = LayoutInflater.from(mContext);
    ViewGroup layout = (ViewGroup) inflater.inflate(R.layout.viewpager_custom,collection,false);
    collection.addView(layout);

    ImageView image = (ImageView) layout.findViewById(R.id.viewPagerImageView);
    image.setImageResource(mPics[position]);

    return layout;
}

解决方法

你要走正确的路.

只需要加载压缩位图,而不是未压缩的位图.
您直接将位图资源设置为您的图像视图.使用像毕加索的图书馆
https://github.com/square/picasso/

或使用谷歌的官方来源有效地加载大型位图.

首先在您的活动中复制此方法:

public static int calculateInSampleSize(
            BitmapFactory.Options options,int reqWidth,int reqHeight) {
    // Raw height and width of image
    final int height = options.outHeight;
    final int width = options.outWidth;
    int inSampleSize = 1;

    if (height > reqHeight || width > reqWidth) {

        final int halfHeight = height / 2;
        final int halfWidth = width / 2;

        // Calculate the largest inSampleSize value that is a power of 2 and keeps both
        // height and width larger than the requested height and width.
        while ((halfHeight / inSampleSize) > reqHeight
                && (halfWidth / inSampleSize) > reqWidth) {
            inSampleSize *= 2;
        }
    }

    return inSampleSize;
}

那么这个方法来解码位图:

public static Bitmap decodeSampledBitmapFromResource(Resources res,int resId,int reqHeight) {

    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res,resId,options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize(options,reqWidth,reqHeight);

    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;
    return BitmapFactory.decodeResource(res,options);
}

然后加载你的位图像这样:

@Override
public Object instantiateItem(ViewGroup collection,false);
    collection.addView(layout);

    ImageView image = (ImageView) layout.findViewById(R.id.viewPagerImageView);
    image.setImageBitmap(
    decodeSampledBitmapFromResource(getResources(),R.id.myimage,reqwidth,reqheight));

    return layout;
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...