查看图片并实现回弹效果本人已经写好一个类,这个类里边可以实现“拖动图片后图片回弹”效果,只是回弹的速度
查看图片并实现回弹效果
本人已经写好一个类,这个类里边可以实现“拖动图片后图片回弹”效果,只是回弹的速度太快而自己不知道怎么控制,请大神们指教该如何以更慢的速度来实现“拖动图片后图片回弹”这个效果,下边是代码:
public class CustomViewActivity extends Activity {
float mx,my;
ImageView switcherView;
Bitmap bitmap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_view);
switcherView = (ImageView) this.findViewById(R.id.img);
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.kh06);
switcherView.setImageBitmap(bitmap);
switcherView.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent event) {
float curX, curY;
//System.out.println(switcherView.getScrollX()+"--------视图坐标-----");
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mx = event.getX();
break;
case MotionEvent.ACTION_MOVE:
curX = event.getX();
switcherView.scrollBy((int) (mx - curX), 0);
mx = curX;
break;
case MotionEvent.ACTION_UP:
switcherView.scrollTo(0, 0);
break;
}
return true;
}
});
}
}
图片的scaleType是center,所以图片完全没有经过缩放
[解决办法]
使用Scroller类,这个类就是根据你想要滚动到的位置和想要滚动的时间计算一些值,并执行线程去执行,这样可以实现平滑的滚动。
或者你自己用一个线程来实现也行
[解决办法]
逛论坛,突然看到了这个scrollView
http://www.eoeandroid.com/thread-234342-1-1.html
我觉得应该对你有帮住,你可以看看,明天给你找找属性动画的demo
不过属性动画要求最低api是11,所以一般的应用都不轻易加属性动画,不过效果确实很好。
[解决办法]
你要在这里加点代码:
case MotionEvent.ACTION_UP:
switcherView.scrollTo(0, 0);
break;
不要直接移动到底部0.0,在中间放一个loop循环,然后从当前位置经过许多迭代到达底部0.0。大概这样:
case MotionEvent.ACTION_UP:
for (int i =mx; i > mx; i--) {
myImage.scrollTo((int) mx, 0);
}
break;
还可以在迭代之间加延迟,这样移动的更平滑。
