在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是完美的工作,但我真的想画一个图像,而不是一个椭圆形。:)
发布于 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);
}
}
发布于 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);
}
}
https://stackoverflow.com/questions/2172523
复制相似问题