簡體   English   中英

在不使用自定義視圖的情況下在Android Studio中使用畫布繪制形狀

[英]Draw a shape using canvas in android studio without using custom view

我的任務是在用戶單擊按鈕時在第二個活動上繪制形狀。 所以我嘗試了下面的代碼,但是沒有用。

我已經介紹了很多教程,但是它們都是在另一個View中完成的。 我不了解該視圖。

MainActivity.java

public class MainActivity extends AppCompatActivity implements 
View.OnClickListener {
    Button draw;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        draw = findViewById(R.id.drawButton);
        draw.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        shape = dropdown.getSelectedItem().toString();
        Bundle b = new Bundle();
        b.putString("shape",shape);
        Intent i = new Intent(getApplicationContext(),shapes.class);
        i.putExtras(b);
        startActivity(i);
    }
}

Shapes.java

public class shapes extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_shapes);
        Canvas canvas = new Canvas();
        Rect rec = new Rect();
        rec.top=100;
        rec.left=100;
        rec.bottom = rec.top + 100;
        rec.right = rec.left+ 100;
        Paint p = new Paint();
        p.setColor(Color.GREEN);
        canvas.drawRect(rec,p);

    }
}

單擊按鈕時,您正在調用意圖,它將創建一個新的活動。 您可以向活動主布局添加一個簡單的圖像視圖,然后可以如下設置畫布圖形。

   ImageView imageView=(ImageView) findViewById(R.id.image);
    Bitmap bitmap = Bitmap.createBitmap(100, 100, 
    Bitmap.Config.ARGB_8888);    
    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setColor(Color.BLACK);
    Rect rec = new Rect();
    rec.top=0;
    rec.left=0;
    rec.bottom = rec.top + 100;
    rec.right = rec.left+ 100;
    canvas.drawRect(rec,paint);
    imageView.setImageBitmap(bitmap);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM