【问题标题】:resize the bitmap canvas调整位图画布的大小
【发布时间】:2010-08-06 17:03:50
【问题描述】:

我正在尝试在图像上绘制矩形,但无法在图像上放置艺术作品。只有部分矩形显示在屏幕底部的某处。这是我正在做的事情:

sinewave 是 res>drawable 文件夹中的图像

public void onDraw(Canvas canvas) 
{
     Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sinewave);
     canvas.drawBitmap(myBitmap, 0, 0, null);

     Paint myPaint = new Paint();
     myPaint.setColor(Color.GREEN);
     myPaint.setStyle(Paint.Style.STROKE);
     myPaint.setStrokeWidth(3);
     canvas.drawRect(0, 35 ,80 , 20, myPaint);
}

我无法超过 35,我想将矩形放在正弦波图像的中间。有人可以帮助我提出他们的想法。

【问题讨论】:

    标签: android android-emulator android-widget android-manifest


    【解决方案1】:

    我不确定这是否可行,但您可以尝试在位图上使用 getScaledHeight 和 width 方法。如果它得到正确的边界,这将在外边框上绘制一个矩形,但您可以调整以将其放置在您需要的位置。

    int height = bm.getScaledHeight(canvas);
    int width = bm.getScaledWidth(canvas);
    Rect r = new Rect(0, 0, width, height);
    canvas.drawRect(r, paint);
    

    【讨论】:

    • 如何使用视图绘制图像,然后移动其坐标,然后在其上绘制另一个视图。请帮助我,我是 Android 图形的新手。我知道以下内容。 ImageView i = 新的 ImageView(this); i.setImageResource(R.drawable.my_image); i.setAdjustViewBounds(true); // 设置 ImageView 边界以匹配 Drawable 的尺寸 i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    • 对不起,我不确定那个。我也不是最擅长 android 布局的。我最近刚刚处理了一些画布和位图代码,所以我想我会尽力提供帮助。您可以尝试将该评论作为另一个问题发布,以获得更多回复。另外,请查看 api 演示项目的想法。
    • shelves 项目中也有一些很棒的绘图/布局代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多