Android 图片缩放与旋转的实现详解

忽然想到01

忽然想到01

2016-02-19 09:09

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐Android 图片缩放与旋转的实现详解,无聊中的都看过来。
本文使用Matrix实现Android实现图片缩放与旋转。示例代码如下:
代码如下:

package com.android.matrix;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ImageView.ScaleType;
/**
 * Android实现图片缩放与旋转。
 * @author Administrator
 *
 */
public class MatixActivity extends Activity {
    public void onCreate(Bundle icicle) {

        super.onCreate(icicle);

        setTitle("Android实现图片缩放与旋转。");
        LinearLayout linLayout = new LinearLayout(this);

        //加载需要操作的图片,这里是一张图片
        Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.r);

        //获取这个图片的宽和高
        int width = bitmapOrg.getWidth();
        int height = bitmapOrg.getHeight();

        //定义预转换成的图片的宽度和高度
        int newWidth = 200;
        int newHeight = 200;

        //计算缩放率,新尺寸除原始尺寸
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        // 创建操作图片用的matrix对象
        Matrix matrix = new Matrix();

        // 缩放图片动作
        matrix.postScale(scaleWidth, scaleHeight);

        //旋转图片 动作
        matrix.postRotate(45);

        // 创建新的图片
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
        width, height, matrix, true);

        //将上面创建的Bitmap转换成Drawable对象,使得其可以使用在ImageView, ImageButton中
        BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);

        //创建一个ImageView
        ImageView imageView = new ImageView(this);

        // 设置ImageView的图片为上面转换的图片
        imageView.setImageDrawable(bmd);

        //将图片居中显示
        imageView.setScaleType(ScaleType.CENTER);

        //将ImageView添加到布局模板中
        linLayout.addView(imageView,
        new LinearLayout.LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT
        )
        );

        // 设置为本activity的模板
        setContentView(linLayout);
     } 
}

上例是静态地实现图片缩放,下例中可以通过鼠标滑轮和方向键实现图片动态的放大与缩小。
程序结构如下图:



Zoom.java文件中代码:
代码如下:

package com.android.zooming;
import android.view.View;
import android.content.Context; 
import android.graphics.Canvas; 
import android.graphics.drawable.Drawable; 
import android.view.KeyEvent; 
public class Zoom extends View {
     private Drawable image; 
     private int zoomControler=20; 

     public Zoom(Context context){ 
         super(context); 
         image=context.getResources().getDrawable(R.drawable.x); 
         setFocusable(true); 
     } 

     @Override 
     protected void onDraw(Canvas canvas) { 
         // TODO Auto-generated method stub 
         super.onDraw(canvas); 
         //控制图像的宽度和高度
         image.setBounds((getWidth()/2)-zoomControler, (getHeight()/2)-zoomControler, (getWidth()/2)+zoomControler, (getHeight()/2)+zoomControler); 
         image.draw(canvas); 
     } 

     @Override 
     public boolean onKeyDown(int keyCode, KeyEvent event) { 

             if(keyCode==KeyEvent.KEYCODE_DPAD_UP)//放大
                     zoomControler+=10; 

             if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN) //缩小
                     zoomControler-=10; 

             if(zoomControler10) 
                     zoomControler=10; 

             invalidate(); 
             return true; 
     } 
}

展开更多 50%)
分享

猜你喜欢

Android 图片缩放与旋转的实现详解

编程语言 网络编程
Android 图片缩放与旋转的实现详解

android 大图片拖拽并缩放实现原理

编程语言 网络编程
android 大图片拖拽并缩放实现原理

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Android中利用matrix 控制图片的旋转、缩放、移动

编程语言 网络编程
Android中利用matrix 控制图片的旋转、缩放、移动

Android裁剪图片为圆形图片的实现原理与代码

编程语言 网络编程
Android裁剪图片为圆形图片的实现原理与代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

封装的一些实现图片水印与图片自动结合缩放的类

Web开发
封装的一些实现图片水印与图片自动结合缩放的类

Android通过手势实现的缩放处理实例代码

编程语言 网络编程
Android通过手势实现的缩放处理实例代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win32安装配置非安装版的MySQL

win32安装配置非安装版的MySQL

javascript入门·图片对象(无刷新变换图片)\滚动图像

javascript入门·图片对象(无刷新变换图片)\滚动图像
下拉加载更多内容 ↓