簡體   English   中英

Android:使用畫布在imageview上繪制

[英]Android: Using canvas to draw on an imageview

現在,我有一個顯示圖像的活動。 我希望能夠在圖像上畫一個圓。 “繪制”按鈕應該在圖像上繪制一個圓,但是由於某種原因,它會覆蓋原始位圖,而不是在其頂部繪制。

如何使按鈕在原始位圖/圖像視圖上畫一個圓圈,而不是制作一個新的按鈕?

public class ImageDisplayActivity extends FragmentActivity {

    public static final String KEY_PATH = "img.jpg";
    private ZoomInZoomOut touch;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_display);
        Intent intent = getIntent();
        String path = getIntent().getStringExtra(ImageDisplayActivity.KEY_PATH);
        try {
            java.io.FileInputStream in = this.openFileInput(path);
            Bitmap bitmap = BitmapFactory.decodeStream(in);
            touch = (ZoomInZoomOut) findViewById(R.id.IMAGEID);
            touch = arrangeImageView(touch);
            touch.setImageBitmap(bitmap);
            in.close();
            Button draw = (Button) findViewById(R.id.draw);
            draw.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    Bitmap imageBitmap = Bitmap.createBitmap(200,
                            200, Bitmap.Config.ARGB_8888);
                    Canvas canvas = new Canvas(imageBitmap);
                    Paint p = new Paint();
                    p.setAntiAlias(true);
                    p.setColor(Color.BLUE);
                    p.setStyle(Paint.Style.STROKE);
                    canvas.drawCircle(100, 100, 5, p);
                    touch.setImageBitmap(imageBitmap);
                }
            });
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    private ZoomInZoomOut arrangeImageView(ZoomInZoomOut img) {
        try {
            img.setRotation(90);
            img.setScaleX(1.8f);
            img.setScaleY(1.8f);
        }
        catch (Exception e) {
            e.printStackTrace();
        }
        return img;
    }
}

SetImageBitmap用新的位圖替換當前的位圖。 它不依靠它。 解決此問題的最簡單方法是從圖像視圖中獲取位圖,將其繪制到imageBitmap,然后將圓繪制到imageBitmap。

暫無
暫無

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

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