我是android development
的新人。我正在尝试制作一个需要集成图像swipe and pinch zoom
功能的壁纸应用程序。
我做过两次但不是一次。当我整合滑动它的工作,但当我集成捏缩放然后没有工作。 Both functionality work alone but not together.
我试图多次找到解决方案但却无法从任何地方找到解决方案。 Below code used.
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);
}
}
}
我使用了上面的代码。让我知道是否有任何人有解决方案实际问题。
感谢
答案 0 :(得分:0)
也许你可以尝试避免在必须捏的时候滑动
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标记替换为我自己的类,然后调用方法setPagingEnabled false,希望它有帮助
答案 1 :(得分:0)
对于滑动,您可以测量最小滑动距离,并根据您可以识别缩放和滑动。您还可以查看给定的网址以供参考,以实现您的目标
希望这对你有所帮助。