我使用ViewFlipper创建了一个图片幻灯片。 我用过imageFrame.setOnTouchListener(gestureListener);收听用户触摸事件,如单击,长按
但是现在我想在幻灯片放映(ViewFlipper)中放大/缩小当前图像,由用户双击。我已经在网上搜索了这个但是找不到解决方案。请帮帮我。
答案 0 :(得分:2)
有很多方法可以做到这一点,但一种简单的方法是使用平台的ZoomControls widget,这是一个由+/-按钮组成的简单小部件。您可以附加onZoomInClickListener
和onZoomOutClickListener
来处理ZoomControls小部件的触摸。
在处理程序中,您可以缩放图像。下面是一些使用ScaleAnimation进行缩放的示例代码:
iv = (ImageView) findViewById(R.id.imageview);
zc = (ZoomControls) findViewById(R.id.zoom_controls);
zc.setOnZoomInClickListener(new OnClickListener() {
public void onClick(View v) {
float oldZoom = currentZoom;
currentZoom = currentZoom * 1.25;
zc.setIsZoomOutEnabled(true);
if (3.0 < currentZoom) {
zc.setIsZoomInEnabled(false);
}
scaleAnim = new ScaleAnimation(oldZoom, currentZoom, oldZoom, currentZoom, 0, 0);
scaleAnim.setFillAfter(true);
iv.startAnimation(scaleAnim);
}
});
zc.setOnZoomOutClickListener(new OnClickListener() {
public void onClick(View v) {
float oldZoom = currentZoom;
currentZoom = currentZoom / 1.25;
zc.setIsZoomInEnabled(true);
if (0.33 > currentZoom) {
zc.setIsZoomOutEnabled(false);
}
scaleAnim = new ScaleAnimation(oldZoom, currentZoom, oldZoom, currentZoom, 0, 0);
scaleAnim.setFillAfter(true);
iv.startAnimation(scaleAnim);
}
});