android中ViewPager的缩放和滑动问题
我是新来的android中ViewPager的缩放和滑动问题,android,android-viewpager,swipe,pinchzoom,Android,Android Viewpager,Swipe,Pinchzoom,我是新来的android开发人员。我正在尝试制作一个墙纸应用程序,其中需要集成图像滑动和收缩缩放功能 我两个都做了,但不是一次做。当我集成滑动时,它工作,但当我集成收缩缩放时,它不工作这两种功能单独工作,但不能同时工作。 我多次试图找到解决办法,但都没有成功下面使用的代码。 public class FullImageActivity extends Activity { protected int curruntPosition; @Override protecte
android开发人员
。我正在尝试制作一个墙纸应用程序,其中需要集成图像滑动和收缩缩放功能
我两个都做了,但不是一次做。当我集成滑动时,它工作,但当我集成收缩缩放时,它不工作<代码>这两种功能单独工作,但不能同时工作。
我多次试图找到解决办法,但都没有成功<代码>下面使用的代码。
public class FullImageActivity extends Activity {
protected int curruntPosition;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_full_image);
ImageAdapter imageAdapter = new ImageAdapter(this);
List<ImageView> images = new ArrayList<ImageView>();
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
for (int i = 0; i < imageAdapter.getCount(); i++) {
ImageView imageView = new ImageView(this);
imageView.setImageResource(imageAdapter.mThumbIds[i]);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
images.add(imageView);
}
ImagePagerAdapter imagePagerAdapter = new ImagePagerAdapter(images);
viewPager.setAdapter(imagePagerAdapter);
int position = getIntent().getExtras().getInt("id");
viewPager.setCurrentItem(position);
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override public void onPageSelected(int arg0)
{ // TODOAuto-generated method stub // Here you can set the wallpaper
curruntPosition = arg0;
}
@Override public void onPageScrolled(int arg0, float arg1, int arg2)
{ // TODO Auto-generated method stub
}
@Override public void onPageScrollStateChanged(int arg0)
{ // TODO Auto-generated method stub
}
});
TouchImageView img = new TouchImageView(this);
img.setImageResource(imageAdapter.mThumbIds[position]);
img.setMaxZoom(4f);
setContentView(img);
}
}
}
公共类FullImageActivity扩展活动{
受保护的内部位置;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u full\u image);
ImageAdapter ImageAdapter=新的ImageAdapter(此);
列表图像=新的ArrayList();
ViewPager ViewPager=(ViewPager)findViewById(R.id.view\u pager);
对于(int i=0;i
我使用了上面的代码。让我知道,如果有任何人有一个解决方案,它实际上是什么问题
谢谢也许你可以试着避免在需要捏东西的时候刷卡
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
}
完成此操作后,剩下的唯一一件事就是用布局文件上的ViewPager标记替换我自己的类,然后调用方法SetPaginEnabled false,希望它对刷卡有帮助。您可以测量最小刷卡距离,并在此基础上识别缩放和刷卡。此外,您还可以查看给定的url以供参考,从而实现您的目标
希望这对您有所帮助。目前我不能,但是您必须为您的viewpager创建一个自定义类,然后使用新的viewpager更改xml,然后在使用pinch zoom时调用方法setPaginEnabled并设置为false,希望它能帮到您