【问题标题】:Marker in MapView disappears after rotating itMapView中的标记在旋转后消失
【发布时间】:2011-07-19 17:52:16
【问题描述】:
public Drawable rotateDrawable(int angle)
{
    Bitmap arrowBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.arrowscalled);

    // Create blank bitmap of equal size
    Bitmap canvasBitmap = arrowBitmap.copy(Bitmap.Config.ARGB_8888, true);
    canvasBitmap.eraseColor(0x00000000);

   // Create canvas
   Canvas canvas = new Canvas(canvasBitmap);

   // Create rotation matrix
   Matrix rotateMatrix = new Matrix();
   rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2);

   // Draw bitmap onto canvas using matrix
   canvas.drawBitmap(arrowBitmap, rotateMatrix, null);

   return new BitmapDrawable(canvasBitmap);
}

每当我调用它时,标记就会消失而不是旋转。我做错了什么?

【问题讨论】:

  • 额外的画布(canvasBitmap)让我很困惑,为什么还要它?
  • 您能否使用给我们的好工具更好地格式化代码!
  • @Dan 它是为了别的东西,无论如何这不是问题我已经删除它谢谢你提醒我。
  • 目标是在 ImageView 中显示还是直接在画布上绘制?
  • @Dan 使用 setMarker(Drawable d) 直接在画布上绘图

标签: android android-mapview google-maps-markers


【解决方案1】:

不用费力地创建一个新的 Canvas 和所有使用 Bitmap.createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter) 的东西。创建旋转矩阵时,使用传递给 createBitmap 函数的一半宽度和高度。在此之后创建您的 BitmapDrawable。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    相关资源
    最近更新 更多