我目前使用的画廊小工具来显示缩略图的滑动列表。 每个缩略图具有背景颜色和文字重叠。 (这是一个颜色选择)。
但是由于API版本16,画廊已被弃用。 。 据我了解,有大于16 API版本的手机都不能保证有画廊部件。
我会用一个viewpager,但只显示一次一个观点,我想显示相邻的意见了。 水平滚动视图可以做到这一点,但它不会捕捉到象画廊将最接近的选项。
我找了现有的小工具,并不能找到任何。 你有任何建议,我应该选择什么部件?
我目前使用的画廊小工具来显示缩略图的滑动列表。 每个缩略图具有背景颜色和文字重叠。 (这是一个颜色选择)。
但是由于API版本16,画廊已被弃用。 。 据我了解,有大于16 API版本的手机都不能保证有画廊部件。
我会用一个viewpager,但只显示一次一个观点,我想显示相邻的意见了。 水平滚动视图可以做到这一点,但它不会捕捉到象画廊将最接近的选项。
我找了现有的小工具,并不能找到任何。 你有任何建议,我应该选择什么部件?
您是否尝试过的CoverFlow? 您可以使用此。 https://github.com/Polidea/android-coverflow希望这可以帮助你。
要么
您还可以使用页面卷曲的swipping。 https://github.com/moritz-wundke/android-page-curl
一个很好的选择,以取代画廊是一个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);
}
}
我用了一个ViewPager与它的clipToPadding设置在左边和右边虚假和平等的填充值。 这使得页面比viewpager小,居中里面。
然后,我设置viewPager.setPageMargin为负值,以允许两边的页面变得可见。 这样,您与他人呈现出中心页面。
那么你也可以通过在ViewPager(viewPager.setPageTransformer)设置PageTransformer添加一些花哨的动画。 我做了一个旋转和缩放使用在PageTransformer所提供的浮效仿般的效果旋转木马。
我希望这是对别人有帮助的。 此外,我认为库已被废弃,因为投掷只是感觉不对。 你不知道哪个项目将一扔后进行选择。
有人写了一个画廊的替代品,它回收的意见。 它是在原有基础上画廊的代码,因此它应该是一种进步。 这里的链接: https://github.com/falnatsheh/EcoGallery
目前最好的解决办法是RecyclerView
有一种方法来定制ViewPager用于显示相邻的观点,但不是很简单。 检查这一点- http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html 。
如果它不会帮助您可以尝试HorizontallScrollView。
我觉得是个好主意使用查看传呼机更换画廊。