首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在画布上绘制对象/图像

在画布上绘制对象/图像
EN

Stack Overflow用户
提问于 2010-02-01 01:03:57
回答 2查看 95.2K关注 0票数 23

在android中,有没有其他方法可以在画布上绘制对象?

draw()中的代码不起作用:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin);

         canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);  

实际上,它在我的第一个代码上工作,但当我将它转移到另一个名为MarkOverlay的类时,它就不再工作了。

  markerOverlay = new MarkerOverlay(getApplicationContext(), p);
                      listOfOverlays.add(markerOverlay);  

我应该向MarkerOverlay传递什么参数才能使这段代码工作?错误出现在getResources()中的某个地方。

仅供参考,canvas.drawOval是完美的工作,但我真的想画一个图像,而不是一个椭圆形。:)

EN

回答 2

Stack Overflow用户

发布于 2012-09-19 06:52:32

我更喜欢这样做,因为它只生成一次映像:

public class CustomView extends View {

    private Drawable mCustomImage;

    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mCustomImage = context.getResources().getDrawable(R.drawable.my_image);
    }

    ...

    protected void onDraw(Canvas canvas) {
        Rect imageBounds = canvas.getClipBounds();  // Adjust this for where you want it

        mCustomImage.setBounds(imageBounds);
        mCustomImage.draw(canvas);
    }
}
票数 34
EN

Stack Overflow用户

发布于 2012-04-28 18:54:59

package com.canvas;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class Keypaint extends View {
    Paint p;

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        p=new Paint();
        Bitmap b=BitmapFactory.decodeResource(getResources(), R.drawable.icon);
        p.setColor(Color.RED);
        canvas.drawBitmap(b, 0, 0, p);
    }

    public Keypaint(Context context) {
        super(context);
    }
}
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2172523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档