Java 在图像视图/位图上绘制画布
我一直试图在Java 在图像视图/位图上绘制画布,java,android,canvas,bitmap,imageview,Java,Android,Canvas,Bitmap,Imageview,我一直试图在ImageView上绘制Canvas,但在创建位图后,我在屏幕上看不到任何图像。我唯一得到的是我在onDraw方法中画的小圆圈。我想将画布放在图像视图上 我有以下代码: public class MainActivity extends AppCompatActivity { ImageView imageView; Bitmap myBitmap; Paint paint; Button button; @Override protected void
ImageView
上绘制Canvas
,但在创建位图后,我在屏幕上看不到任何图像。我唯一得到的是我在onDraw
方法中画的小圆圈。我想将画布
放在图像视图
上
我有以下代码:
public class MainActivity extends AppCompatActivity {
ImageView imageView;
Bitmap myBitmap;
Paint paint;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
}
public void onClickButton(View view) {
View v = new DrawCanvas(getApplicationContext());
Bitmap bitmap = Bitmap.createBitmap(48, 48, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
v.draw(canvas);
imageView = (ImageView) findViewById(R.id.testpicture);
imageView.setImageBitmap(bitmap);
}
}
及
提前谢谢 首先,你把事情复杂化了。你不需要,也不想看到你正在做的事情。如果要绘制圆,请在onClick中使用canvas.drawCircle直接在画布上绘制 其次,alling setImageBitmap将覆盖以前设置的任何位图。如果要在上一张图像上显示此内容,您有2个选项: 1) 使用两个相互重叠的图像视图,并将顶部图像设置为在画布上制作的位图(要进行此操作,可能需要确保位图上的背景色是透明的) 2) 创建一个子类为off ImageView的新视图,该视图通过覆盖onDraw显示2个位图 第一种方法可能更简单
public class DrawCanvas extends View {
Paint paint = new Paint();
public DrawCanvas(Context context) {
super(context);
}
public DrawCanvas(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setColor(Color.RED);
canvas.drawCircle(25, 25, 5, paint);
}
}