Android 图片的平移和镜面和倒影效果

在前面的文章中陆续介绍了图片的旋转与缩放,本文继续介绍关于图片的操作

图片的平移

使用下面的代码将图水平竖直方向平移10个像素

matrix.setTranslate(10, 10);

可以看到图片不完整,需要修改代码:

// 新建一个bitmap
Bitmap alterBitmap = Bitmap.createBitmap(bitmap1.getWidth() * 2,
                bitmap1.getHeight() * 2, bitmap1.getConfig());

其他代码均不变

图片的镜面效果

代码如下:

matrix.setScale(-1, 1);
matrix.postTranslate(bitmap1.getWidth(), 0);

实现的效果:

图片的倒影效果

代码如下:

//倒影效果
matrix.setScale(1, -1);
matrix.postTranslate(0, bitmap1.getHeight());
        

实现的效果:

完整代码如下:

package com.wuyudong.resize;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.view.Menu;
import android.widget.ImageView;

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.unlock);

        iv1.setImageBitmap(bitmap1);

        // 新建一个bitmap
        Bitmap alterBitmap = Bitmap.createBitmap(bitmap1.getWidth() * 2,
                bitmap1.getHeight() * 2, bitmap1.getConfig());

        // 以alterBitmap为模板新建画布
        Canvas canvas = new Canvas(alterBitmap);
        // 新建画笔并设置属性
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);

        // 新建矩阵并设置缩放值
        Matrix matrix = new Matrix();

        //镜面效果
        //matrix.setScale(-1, 1);
        //matrix.postTranslate(bitmap1.getWidth(), 0);

        //倒影效果
        matrix.setScale(1, -1);
        matrix.postTranslate(0, bitmap1.getHeight());

        //平移效果
        // matrix.setTranslate(10, 10);

        // 设置画布
        canvas.drawBitmap(bitmap1, matrix, paint);
        iv2.setImageBitmap(alterBitmap);
    }

}
时间: 2024-11-09 10:15:03

Android 图片的平移和镜面和倒影效果的相关文章

Android进度条控制图片旋转·平移·缩放·倾斜

初来乍到 平时代码多写于某笔记软件上 现在在这里记录一些 从初学Android开始写起 可能有些地方实现得略小白 或者还不能熟练使用博客园的功能 但是希望能够对需要的人有帮助 不足之处请多指教 一般使用工具:android studio 那么 Here we go. have a good time. 用进度条实现控制图片旋转·平移·缩放·倾斜 效果: 1 public class MainActivity extends AppCompatActivity implements SeekBar

Android图片旋转,缩放,位移,倾斜,对称完整演示样例(一)——imageView.setImageMatrix(matrix)和Matrix

MainActivity例如以下: import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.app.Activity; import android.graphics.Matrix; /** * Demo描

[转] Android图片处理(Matrix,ColorMatrix)

在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的效果,有时候还要对图片进行变换,以拉伸,扭曲等等. 这些效果在android中有很好的支持,通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果. 下面将分别介绍这两个矩阵的用法和相关的函数. 颜色矩阵android中可以通过颜色矩阵(ColorMatrix类)方面的操作颜色,颜色矩阵是一个5x4 的矩阵(如图1.1) 可以用来方面的修改图片中RGBA各分量的值,颜色矩阵以一维数

Android图片旋转,缩放,位移,倾斜,对称完整示例(二)——Bitmap.createBitmap()和Matrix

MainActivity如下: package cc.c; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.widget.ImageView; /** * Demo描述: * 利用B

Android图片旋转,缩放,位移,倾斜,对称完整示例(一)——imageView.setImageMatrix(matrix)和Matrix

MainActivity如下: import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.app.Activity; import android.graphics.Matrix; /** * Demo描述:

Android图片查看器(图片可移动、缩放)

要实现图片在手指点击后移动和缩放有好几种方法,在这里是通过onTouch来实现的. 实例代码如下: 首先是在View中有一个ImageView <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_paren

Android图片的拖拽与缩放

Android图片的拖拽与缩放 2014年5月9日 我们在使用应用当中经常需要浏览图片,比如在微信当中,点击图片之后可以对图片进行缩放. 本博客介绍如何对图片进行拖拽和缩放,这首先要了解Android中的触摸机制了,在屏幕中有手指按下.手指抬起.手指移动还有多个手指触摸的动作.我们要实现对图片的拖拽和缩放就是要基于这些动作来进行逻辑处理. 图片的拖拽主要是计算手指开始的位置与当前手指的位置关系,来进行平移的,具体可以看代码. 图片的缩放就涉及到计算两点之间的距离来得到缩放比,调用矩阵方法来达到缩

Android图片色彩处理ColorMatrix

Android图片的处理一般是将图片转成位图(Bitmap)来的处理,位图包含着一张图片的所有数据.图片实际上是由很多个单一颜色的点阵组成的,这些点越小图片就越细腻,点的颜色是由色值ARGB,即透明度.红.绿.蓝四个分量决定.而整张图片的处理实际上就是对这些点的分量做调整. Android系统中提供一个用于调整颜色的矩阵ColorMatrix,这是一个4x5的数字矩阵.而颜色的色值则保存在一个4x1的矩阵中.色值的区间为[0,255].以下是ColorMatrix部分注解 /** * 4x5 m

24.Android 图片工具ImageUtil

24.Android 图片工具ImageUtil Android 图片工具ImageUtil 裁图 Bitmap圆角 缩略图 视频缩略图 各种类型转换 ImageUtil全部源码 裁图 /** * 调用系统自带裁图工具 * * @param activity * @param size * @param uri * @param action * @param cropFile */ public static void cropPicture(Activity activity, int si