Tod*_*ies 21 android deprecated android-viewpager
我目前正在使用Gallery小部件来显示缩略图的滑动列表.每个缩略图都有背景颜色和文本覆盖.(这是一个颜色选择器).
但是,从API版本16开始,该库已被弃用..据我了解,API版本大于16的手机不保证有图库小部件.
我会使用一个viewpager,但是它一次只显示一个视图,我也想显示相邻的视图.水平滚动视图可以执行此操作,但它不会像图库那样捕捉到最近的选项.
我找了现有的小部件,找不到任何东西.您对我应该选择哪个小部件有什么建议吗?
use*_*757 15
替换Gallery的一个很好的选择是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>
Run Code Online (Sandbox Code Playgroud)
班级代码
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
}
});
Run Code Online (Sandbox Code Playgroud)
适配器
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);
}
Run Code Online (Sandbox Code Playgroud)
}
我使用了一个ViewPager,它的clipToPadding设置为false,左边和右边的填充值相等.这使得页面比viewpager小,并将其置于其中.
然后我将viewPager.setPageMargin设置为负值,以允许两侧的页面可见.这样,您就可以看到其他人显示的居中页面.
然后,您还可以通过在ViewPager(viewPager.setPageTransformer)上设置PageTransformer来添加一些奇特的动画.我使用PageTransformer中提供的float进行旋转和缩放,以模拟类似旋转木马的效果.
我希望这对某人有帮助.此外,我认为画廊已被弃用,因为投掷只是感觉不对.您不知道在投掷之后将选择哪个项目.
你尝试过封面流吗?你可以用这个。https://github.com/Polidea/android-coverflow希望这可以帮助你。
或者
您还可以使用卷页进行滑动。https://github.com/moritz-wundke/android-page-curl
| 归档时间: |
|
| 查看次数: |
34504 次 |
| 最近记录: |