更新时间:2022-11-08 20:32:37
有许多方法可以做到这一点,但一个简单的方法是使用平台的 ZoomControls小部件,这是一个简单的小工具包括一个+/-按钮。您可以将 onZoomInClickListener
和 onZoomOutClickListener
来处理触摸到了ZoomControls部件。
There are a number of ways you can do this, but a simple way is to use the platform's ZoomControls widget, which is a simple widget consisting of a +/- button. You can attach onZoomInClickListener
and an onZoomOutClickListener
to handle touches to the ZoomControls widget.
在你处理,你可以扩展你的形象。下面是一个使用ScaleAnimation做变焦一些示例code:
In your handler, you can scale your image. Here's some sample code that uses a ScaleAnimation to do the zooming:
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);
}
});