更换过时的库选项(Options for replacing the deprecated Gall

2019-08-19 19:27发布

我目前使用的画廊小工具来显示缩略图的滑动列表。 每个缩略图具有背景颜色和文字重叠。 (这是一个颜色选择)。

但是由于API版本16,画廊已被弃用。 。 据我了解,有大于16 API版本的手机都不能保证有画廊部件。

我会用一个viewpager,但只显示一次一个观点,我想显示相邻的意见了。 水平滚动视图可以做到这一点,但它不会捕捉到象画廊将最接近的选项。

我找了现有的小工具,并不能找到任何。 你有任何建议,我应该选择什么部件?

Answer 1:

您是否尝试过的CoverFlow? 您可以使用此。 https://github.com/Polidea/android-coverflow希望这可以帮助你。

要么

您还可以使用页面卷曲的swipping。 https://github.com/moritz-wundke/android-page-curl



Answer 2:

一个很好的选择,以取代画廊是一个ViewPager,可以作为一个ListView或GridView中,你必须做出自己的适配器扩展PagerAdater和布局项目。 我已经用这个代码我在下面附上使用它,它完美的作品。 良好的触感的反应,我希望这能帮助你!

布局

<android.support.v4.view.ViewPager
    android:id="@+id/gallery_item"
    android:layout_width="fill_parent"
    android:layout_height="709dp"
    android:layout_below="@+id/relative_headerBar"
    >

</android.support.v4.view.ViewPager> 

班级代码

private ViewPager gallery;
gallery = (ViewPager) findViewById(R.id.gallery_item);

gallery = (ViewPager) findViewById(R.id.gallery_item);
    lista_galeria = new ArrayList<ObjectVerGaleria>();

    int i=0;
    for(i=0;i<listImages.length;i++)
    {       
        ObjectVerGaleria objV = new ObjectVerGaleria();
        objV.setUrlImg(listImages[i]);  
        lista_galeria.add(objV);
    }
    gallery.setAdapter(new AdapterVerGaleria(ctx, lista_galeria));

    gallery.setOnPageChangeListener(new OnPageChangeListener()
    {

        public void onPageSelected(int pos)
        {
            String pathImage = listImages[pos].toString();

            currentPosFront = pos;
            Log.d("setOnItemSelectedListener>>","path:"+pathImage);

        }

        public void onPageScrolled(int arg0, float arg1, int arg2)
        {
            // TODO Auto-generated method stub

        }

        public void onPageScrollStateChanged(int arg0)
        {
            // TODO Auto-generated method stub

        }
    });

适配器

public class AdapterVerGaleria extends PagerAdapter {

private Activity ctx;
private ArrayList<ObjectVerGaleria> dataList;

public AdapterVerGaleria(Activity act, ArrayList<ObjectVerGaleria> lista) {

    ctx = act;
    dataList = lista;
}

public int getCount() {
    return dataList.size();
}

public Object getItem(int pos) {
    return pos;
}

@Override
public Object instantiateItem(View collection, int pos)
{
    ImageView foto = new ImageView(ctx);



        //foto.setLayoutParams(new ViewPager.LayoutParams(Gallery.LayoutParams.FILL_PARENT, Gallery.LayoutParams.FILL_PARENT));
        foto.setScaleType(ImageView.ScaleType.FIT_XY);
        Utils.fetchDrawableOnThread(Utils.getPath(ctx)+"/"+dataList.get(pos).getUrlImg(), foto, true);
        ((ViewPager)collection).addView(foto);


    return foto;
}

@Override
public void destroyItem(View collection, int position, Object view)
{
    ((ViewPager)collection).removeView((ImageView)view);

}

public long getItemId(int pos) {
    return pos;
}



@Override
public boolean isViewFromObject(View view, Object object)
{
    // TODO Auto-generated method stub
    return view == ((ImageView)object);
}

}



Answer 3:

我用了一个ViewPager与它的clipToPadding设置在左边和右边虚假和平等的填充值。 这使得页面比viewpager小,居中里面。

然后,我设置viewPager.setPageMargin为负值,以允许两边的页面变得可见。 这样,您与他人呈现出中心页面。

那么你也可以通过在ViewPager(viewPager.setPageTransformer)设置PageTransformer添加一些花哨的动画。 我做了一个旋转和缩放使用在PageTransformer所提供的浮效仿般的效果旋转木马。

我希望这是对别人有帮助的。 此外,我认为库已被废弃,因为投掷只是感觉不对。 你不知道哪个项目将一扔后进行选择。



Answer 4:

有人写了一个画廊的替代品,它回收的意见。 它是在原有基础上画廊的代码,因此它应该是一种进步。 这里的链接: https://github.com/falnatsheh/EcoGallery



Answer 5:

目前最好的解决办法是RecyclerView



Answer 6:

有一种方法来定制ViewPager用于显示相邻的观点,但不是很简单。 检查这一点- http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html 。

如果它不会帮助您可以尝试Horizo​​ntallScrollView。



Answer 7:

我觉得是个好主意使用查看传呼机更换画廊。



文章来源: Options for replacing the deprecated Gallery