Android之bitmap的镜像3D翻转(绕x轴 Y轴)

主要运用到的是graphics下面的camera类。大家不要误以为是handware下面的哦。


import android.graphics.Camera;


private Camera camera;
camera = new Camera();


 /**
     * 翻转图片
     *
     * @param isLeftOrRight
     */
    private void roatePicture(boolean isLeftOrRight, Bitmap bitmap) {
        camera.save();
        Matrix matrix = new Matrix();
        // rotate
        if (isLeftOrRight) {
            camera.rotateY(180);


        } else {
            camera.rotateX(180);
        }
        camera.getMatrix(matrix);
        // 恢复到之前的初始状态。
        camera.restore();
        // 设置图像处理的中心点
        matrix.preTranslate(bitmap.getWidth() >> 1, bitmap.getHeight() >> 1);
        //    matrix.preSkew(10, 10);
        matrix.postTranslate(bitmap.getWidth(), bitmap.getHeight());
        // matrix.postSkew(skewX, skewY);
        // 直接setSkew(),则前面处理的rotate()、translate()等等都将无效。
        // matrix.setSkew(skewX, skewY);
        // 2.通过矩阵生成新图像(或直接作用于Canvas)
        Bitmap newBit = null;
        try {
            // 经过矩阵转换后的图像宽高有可能不大于0,此时会抛出IllegalArgumentException
            newBit = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
        } catch (IllegalArgumentException iae) {
            iae.printStackTrace();
        }
        if (newBit != null) {
//            show_image.mImageView.setLayout(false);
            show_image.setImageBitmap(newBit);
            tempBitmap = newBit;
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值