Android画布不绘图

问题描述 投票:0回答:3

我发现很少有关于如何使用android画布的教程。但是,在查看官方文档后,我能够生成此代码。我只想绘制一个绿色矩形。

public class LevelActivity extends AppCompatActivity {

    Object shape;
    Target target;

    Rect r;
    Paint paint;

    Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(b);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_level);

        paint = new Paint();
        paint.setColor(Color.GREEN);
        paint.setStyle(Paint.Style.FILL);

        r = new Rect();
        r.set(0,0,c.getWidth(),c.getHeight()/2);

        c.drawRect(r,paint);

        shape = new Shape(30,10);  //Object setup
        //shape.pick(); //Pick random point for target
    }

}

我不想使用自定义View来绘制,我只想使用纯android画布。当我运行代码时,我没有错误或任何警告。

任何帮助是极大的赞赏。

-Kelton

java android android-imageview android-canvas
3个回答
1
投票

好吧,你有一个Canvas c与底层位图b。现在,你在Canvas c上绘制的任何东西都将实际绘制在位图b上。您已完成上述代码中的绘图部分。位图b有你绘制的矩形。但现在要查看您需要在某些视图中加载此Bitmap b,如ImageView。您可以在ImageView布局中使用activity_level,然后使用ImageView.setImageBitmap(b)将Bitmap加载到视图中。


0
投票

你需要在最后添加以下两行:

 ImageView iv= (ImageView) findViewById(R.id.imageview_where_i_will_put_my_awesome_green_rectangle);
        iv.setImageBitmap(b);

0
投票

您必须创建一个ImageView并将Bitmap设置为您使用canvas创建的Bitmap。

ImageView imageView = new ImageView(this);
imageView.setBitmap(bitmap);
addContentView(imageView, new LayoutParams(MATCH_PARENT, MATCH_PARENT));
© www.soinside.com 2019 - 2024. All rights reserved.