android - 如何加快android中的缩放

标签 android scaling android-canvas

嘿,我需要在我的应用程序中缩放位图,但是缩放速度太慢,有时我会在相反的方向上得到这些随机缩放事件。这是我的 ondraw 方法:

public void onDraw(Canvas canvas) {
        mBitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.ucsbmap);
        canvas.drawBitmap(mBitmap, matrix, mPaint);    
}

和我的 onScale 方法(处理位图缩放的 SimpleOnScaleGestureListener 的一部分)

     public boolean onScale(ScaleGestureDetector detector) {      
          float scaleFactor = detector.getScaleFactor();
          float x = detector.getFocusX();
          float y = detector.getFocusY();
          matrix.setScale(scaleFactor, scaleFactor, x, y);
          repaint();
          return true;
     }

谢谢。

最佳答案

问题在缩放中并不实际。您在 onDraw 方法中访问光盘 (BitmapFactory.decodeResource) - 这真的很慢。

将以下代码移至构造函数:

mBitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.ucsbmap);

关于android - 如何加快android中的缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10678247/

相关文章:

android - 如何将 Android 应用程序发布到特定屏幕分辨率的市场?

java - Twitter4j 在 Android 4 中崩溃

android - 如何将 Drawable 转换为缩放位图

node.js - OpenShift HAProxy 扩展不起作用

android - 如何用位图绘制路径?

android - 如何在android中使用sin()函数和 Canvas 绘制正弦波曲线?

android - 为什么重新安装 apk 后数据库会被删除?

android - 方向更改时的 LoaderManager 行为

spring-boot - 如何在PCF发生故障或崩溃时自动重启单个实例

r - 在 R 中缩放 Flexdashboard 仪表