Android编程实现图片放大缩小功能ZoomControls控件用法实例

本文实例讲述了Android编程实现图片放大缩小功能ZoomControls控件用法。分享给大家供大家参考,具体如下:

MainActivity代码:

package example.com.myapplication;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.ZoomControls;public class MainActivity extends Activity {  private LinearLayout llLayout;  private ZoomControls zoomcontrols;  private ImageView img;  private int id=0;  private int displayWidth;  private int displayHeight;  private float scaleWidth = 1;  private float scaleHeight = 1;  private Bitmap bitmap;  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    llLayout =(LinearLayout)findViewById(R.id.layout);    //取得屏幕分辨率大小    DisplayMetrics dm = new DisplayMetrics();    getWindowManager().getDefaultDisplay().getMetrics(dm);    displayWidth = dm.widthPixels;    //屏幕高度减去zoomControls的高度    displayHeight = dm.heightPixels;    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.c);    img =(ImageView)findViewById(R.id.image);    //zoom.hide();隐藏zoomControls    //zoom.show();显示zoomCOntrols    zoomcontrols =(ZoomControls)findViewById(R.id.zoomcontrol);    img =(ImageView)findViewById(R.id.image);    zoomcontrols.setIsZoomInEnabled(true);    zoomcontrols.setIsZoomOutEnabled(true);    //图片放大    zoomcontrols.setOnZoomInClickListener(new OnClickListener()    {      public void onClick(View v)      {        int bmpWidth = bitmap.getWidth();        int bmpHeight = bitmap.getHeight();        //设置图片放大但比例        double scale = 1.25;        //计算这次要放大的比例        scaleWidth =(float)(scaleWidth*scale);        scaleHeight =(float)(scaleHeight*scale);        //产生新的大小但Bitmap对象        Matrix matrix = new Matrix();        matrix.postScale(scaleWidth, scaleHeight);        Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bmpWidth,bmpHeight,matrix,true);        img.setImageBitmap(resizeBmp);      }    });    //图片减小    zoomcontrols.setOnZoomOutClickListener(new OnClickListener()    {      public void onClick(View v) {        int bmpWidth = bitmap.getWidth();        int bmpHeight = bitmap.getHeight();        //设置图片放大但比例        double scale = 0.8;        //计算这次要放大的比例        scaleWidth =(float)(scaleWidth*scale);        scaleHeight =(float)(scaleHeight*scale);        //产生新的大小但Bitmap对象        Matrix matrix = new Matrix();        matrix.postScale(scaleWidth, scaleHeight);        Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bmpWidth,bmpHeight,matrix,true);        img.setImageBitmap(resizeBmp);      }    });  }}

activity_main布局文件代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:id="@+id/layout"  >  <ImageView    android:id="@+id/image"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:src="@drawable/c"    />  <ZoomControls    android:id="@+id/zoomcontrol"    android:layout_gravity="bottom"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    />  </LinearLayout>

常见方法说明:

hasFocus():判断焦点hide():隐藏onTouchEvent(MotionEvent event):现这个方法来处理触摸屏移动事件setIsZoomInEnabled(boolean isEnabled):是否允许放大setIsZoomOutEnabled(boolean isEnabled):是否允许缩小setOnZoomInClickListener(View.OnClickListener listener):注册放大监听器setOnZoomOutClickListener(View.OnClickListener listener):注册缩小监听器setZoomSpeed(long speed):设置缩放速度show():显示

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

生命太过短暂,今天放弃了明天不一定能得到

Android编程实现图片放大缩小功能ZoomControls控件用法实例

相关文章:

你感兴趣的文章:

标签云: