简体   繁体   English

如何将“图像视图”设置为画布并在该画布上绘制

[英]How to set Image View as canvas and draw on that canvas

I have many images which I set on imageView by clicking on a Button, I want to create a class of Drawing so that when the image is on ImageView I can paint on it, and after clicking on the button I will be able to drawing on the new image. 我有许多图像是通过单击一个按钮在imageView上设置的,我想创建一个Drawing类,以便当图像位于ImageView上时可以在其上绘画,然后单击该按钮后就可以在其上绘画新图像。 Till now I have this. 直到现在我有了这个。 Please help me to do this I am new in programming I don't know much. 请帮助我做到这一点。我是编程新手,我不太了解。 Just a little about OOP and DS. 关于OOP和DS的一些知识。

public class EnglishDrawing extends Activity{
private int currentImage = 0;
private ImageView changeImageView;
private Button changeImageOnClick;
private Button changePreviousImageOnClick;
public Bitmap mybitmap,newbmp,bitmap,bmp;
int image[] = { R.drawable.englishdot_01, R.drawable.englishdot_02,
        R.drawable.englishdot_03, R.drawable.englishdot_04,
        R.drawable.englishdot_05, R.drawable.englishdot_06,R.drawable.englishdot_07,
        R.drawable.englishdot_08,
        R.drawable.englishdot_09,
        R.drawable.englishdot_10,
        R.drawable.englishdot_11,
        R.drawable.englishdot_12,
        R.drawable.englishdot_13,
        R.drawable.englishdot_14,
        R.drawable.englishdot_15,
        R.drawable.englishdot_16,
        R.drawable.englishdot_17,
        R.drawable.englishdot_18,
        R.drawable.englishdot_19,
        R.drawable.englishdot_20,
        R.drawable.englishdot_21,
        R.drawable.englishdot_22,
        R.drawable.englishdot_23,
        R.drawable.englishdot_24,
        R.drawable.englishdot_25,
        R.drawable.englishdot_26

};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.englishdrawing);
    changeImageOnClick = (Button) findViewById(R.id.nextDrawEng);
    changePreviousImageOnClick = (Button) findViewById(R.id.preDrawEng);
    changeImageView = (ImageView) findViewById(R.id.englishdrawingimageview);
    changeImageOnClick.setOnClickListener(aButtonChangeImageListener);
    changePreviousImageOnClick.setOnClickListener(bButtonOnClickListener);
    changeImageView.setDrawingCacheEnabled(true);
}
View.OnClickListener aButtonChangeImageListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        currentImage++;
        currentImage = currentImage % image.length;
        changeImageView.setImageResource(image[currentImage]);
    }
};
View.OnClickListener bButtonOnClickListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        currentImage--;
        currentImage = (currentImage + image.length) % image.length;
        changeImageView.setImageResource(image[currentImage]);

    }
};

}

You need to load your image as bitmap: 您需要将图像加载为位图:

 Resources res = getResources();
 Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.your_image);
 canvas.drawBitmap(bitmap , 0,0, null);

You then can draw on the canvas. 然后,您可以在画布上绘制。 On click of canvas you get the next image as bitmap just like above and again draw it on canvas.This is how you can draw on image also..! 单击画布后,您将获得与上图相同的下一个图像作为位图,然后再次将其绘制在画布上。这也是在图像上绘制的方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM