【问题标题】:Translating using Matrix Android使用 Matrix Android 进行翻译
【发布时间】:2013-01-04 12:32:29
【问题描述】:

我正在尝试使用矩阵翻译图像,我的代码是

Bitmap myImg = BitmapFactory.decodeResource(getResources(), R.drawable.calednder_c);

Matrix matrix = new Matrix();

matrix.setTranslate(500,300 );
Bitmap rotated = Bitmap.createBitmap(myImg, 0, 0, myImg.getWidth(), myImg.getHeight(),
        matrix, true);

circle.setImageBitmap(rotated);

当我调用我的 animate 方法时,什么都没有发生。当我写 preRotate(angle); 它旋转并且它也缩放但不能解释我为什么缺少什么

提前致谢

【问题讨论】:

    标签: android android-layout random


    【解决方案1】:

    这里是来自createBitmap源代码的相应sn-p:

    final boolean transformed = !m.rectStaysRect();
    
    RectF deviceR = new RectF();
    m.mapRect(deviceR, dstR);
    
    neww = Math.round(deviceR.width());
    newh = Math.round(deviceR.height());
    
    bitmap = createBitmap(neww, newh, transformed ? Config.ARGB_8888 : newConfig,
            transformed || source.hasAlpha());
    
    canvas.translate(-deviceR.left, -deviceR.top);
    canvas.concat(m);
    
    paint = new Paint();
    paint.setFilterBitmap(filter);
    if (transformed) {
        paint.setAntiAlias(true);
    }
    

    它使创建的位图大到足以容纳原始位图中的所有所需像素。这是由新大小和canvas.translate 调用引起的。

    最终效果是矩阵中的平移被忽略了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-14
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      相关资源
      最近更新 更多