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

前端之家收集整理的这篇文章主要介绍了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;
}
原文链接:https://www.f2er.com/android/311612.html

猜你在找的Android相关文章