替换已弃用的图库的选项

我目前正在使用Gallery小部件来显示缩略图的滑动列表。 每个缩略图都有背景颜色和文本覆盖。 (这是一个颜色选择器)。

但是,从API版本16开始,该库已被弃用。 。 据我了解,API版本大于16的手机不保证有图库小部件。

我会使用一个viewpager,但是它一次只显示一个视图,我也希望显示相邻的视图。 水平滚动视图可以执行此操作,但它不会像图库那样捕捉到最近的选项。

我找了现有的小部件,找不到任何东西。 您对我应该选择哪个小部件有什么建议吗?

Solutions Collecting From Web of "替换已弃用的图库的选项"

你试过coverflow吗? 你可以用它。 https://github.com/Polidea/android-coverflow希望这可能对您有所帮助。

要么

您还可以使用页面curl进行滑动。 https://github.com/moritz-wundke/android-page-curl

替换Gallery的一个很好的选择是ViewPager,作为listview或gridview,你必须制作自己的适配器,扩展PagerAdater和布局项。 我已经使用下面附带的代码使用它,它完美无缺。 良好的触摸响应,我希望这可以帮助你!

布局

  

class级代码

 private ViewPager gallery; gallery = (ViewPager) findViewById(R.id.gallery_item); gallery = (ViewPager) findViewById(R.id.gallery_item); lista_galeria = new ArrayList(); int i=0; for(i=0;i>","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 dataList; public AdapterVerGaleria(Activity act, ArrayList 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); } 

}

我使用了一个ViewPager,它的clipToPadding设置为false,左边和右边的填充值相等。 这使得页面比viewpager小,并将其置于其中。

然后我将viewPager.setPageMargin设置为负值,以允许任一侧的页面可见。 这样,您就可以看到其他人显示的居中页面。

然后,您还可以通过在ViewPager(viewPager.setPageTransformer)上设置PageTransformer来添加一些奇特的animation。 我使用PageTransformer中提供的float进行旋转和缩放,以模拟类似旋转木马的效果。

我希望这对某人有帮助。 此外,我认为画廊已被弃用,因为投掷只是感觉不对。 您不知道在投掷之后将选择哪个项目。

有人写了一个替换画廊的替代品,回收它的观点。 它基于原始的图库代码,所以应该是一个改进。 这是链接: https : //github.com/falnatsheh/EcoGallery

目前最好的解决方案是RecyclerView

有一种方法可以自定义ViewPager以显示相邻视图,但不是很简单。 检查一下 – http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html

如果它没有帮助,您可以尝试Horizo​​ntallScrollView。

我认为使用View Pager替换图库是一个好主意。