public class CustomImageView extends ImageView implements View.OnTouchListener {
private GestureDetector gestureDetector;
private ScaleGestureDetector scaleGestureDetector;
public CustomImageView(Context context) {
super(context);
init(context);
}
public CustomImageView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public CustomImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
// 处理手势拉伸事件
float scaleFactor = 1.0f + (distanceY / getHeight());
setScaleX(getScaleX() * scaleFactor);
setScaleY(getScaleY() * scaleFactor);
return true;
}
});
scaleGestureDetector = new ScaleGestureDetector(context, new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@Override
public boolean onScale(ScaleGestureDetector detector) {
// 处理手势缩放事件
float scaleFactor = detector.getScaleFactor();
setScaleX(getScaleX() * scaleFactor);
setScaleY(getScaleY() * scaleFactor);
return true;
}
});
setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
scaleGestureDetector.onTouchEvent(event);
gestureDetector.onTouchEvent(event);
return true;
}
}
自定义ImageView调节图片大小
最新推荐文章于 2025-04-29 11:17:30 发布
该代码示例展示了一个自定义的ImageView类,它扩展了Android的ImageView并实现了OnTouchListener接口。通过GestureDetector和ScaleGestureDetector,这个CustomImageView可以处理用户的滚动和缩放手势,从而实现图片的动态缩放和滑动功能。

5952

被折叠的 条评论
为什么被折叠?



