zoukankan      html  css  js  c++  java
  • Android 图片的缩放与旋转

    本文实现Android中的图片的缩放效果

    首先设计布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" >
    
        <ImageView
            android:id="@+id/iv_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    
        <ImageView
            android:id="@+id/iv_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             />
    
    </LinearLayout>

    逻辑代码如下:

    public class MainActivity extends Activity {
    
        private ImageView iv1;
        private ImageView iv2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            iv1 = (ImageView) findViewById(R.id.iv_1);
            iv2 = (ImageView) findViewById(R.id.iv_2);
    
            // 设置第一个bitmap的图标
            Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(),
                    R.drawable.ic_launcher);
    
            iv1.setImageBitmap(bitmap1);
    
            // 新建一个bitmap
            Bitmap alterBitmap = Bitmap.createBitmap(bitmap1.getWidth(),
                    bitmap1.getHeight(), bitmap1.getConfig());
    
            // 以alterBitmap为模板新建画布
            Canvas canvas = new Canvas(alterBitmap);
            // 新建画笔并设置属性
            Paint paint = new Paint();
            paint.setColor(Color.BLACK);
            
            //新建矩阵并设置缩放值
            Matrix matrix = new Matrix();
            matrix.setValues(new float[] { 
                    0.5f, 0, 0, 
                    0, 1, 0, 
                    0, 0, 1 
            });
            //设置画布
            canvas.drawBitmap(bitmap1, matrix, paint);
            iv2.setImageBitmap(alterBitmap);
        }
    
    }

    如果你对矩阵的设置不清楚,还可以使用下列api提供的方法替换上面标记部分的代码:

     matrix.setScale(0.5f, 1);

    最后运行项目效果如下:

    除了图像的缩放,还可以使图片旋转指定的角度,例如旋转180度

    matrix.setRotate(180, bitmap1.getWidth() / 2, bitmap1.getHeight() / 2);

  • 相关阅读:
    决策树
    性能测试–性能监视器
    MEAN栈开发
    Android Studio 入门(转)
    提取重复代码不应该只从代码角度,可以从业务角度看看(转)
    我眼中的领域驱动设计(转)
    网格最短路径算法(Dijkstra & Fast Marching)(转)
    Android GridView显示SD卡的图片
    Android GridView异步加载图片和加载大量图片时出现Out Of Memory问题
    Android 弹出框Dialog并缩放图片
  • 原文地址:https://www.cnblogs.com/wuyudong/p/5845231.html
Copyright © 2011-2022 走看看