ImageView在android中不起作用

时间:2014-01-21 10:53:40

标签: android imageview

我在ImageView中使用drawwing有问题。当在onCreate()中绘制线条时都可以,但是在绘制时,qwe()则不会绘制。因为?

public class MainActivity extends Activity {
Bitmap myBitmap;
Canvas myCanvas;
ImageView myImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
config();
}

public void config()
{
  myBitmap=Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
myCanvas=new Canvas(myBitmap);
      myImageView =(ImageView)findViewById(R.id.imageView1);
    for(int i=0;i<200;i++)
        for(int j=0;j<200;j++)
            myBitmap.setPixel(i, j, 0xffffff00);
    myImageView.setImageBitmap(myBitmap);

    Paint myPaint=new Paint();
    myPaint.setColor(0xff000000);
    myCanvas.drawLine(10, 10, 190, 190, myPaint);

}

public void qwe(View v)
{   
     myImageView =(ImageView)findViewById(R.id.imageView1);
    Paint myPaint=new Paint();
    myPaint.setColor(0xff000000);
    myCanvas.drawLine(30, 100, 100, 30, myPaint);
    myImageView.draw(myCanvas);
     myImageView =(ImageView)findViewById(R.id.imageView1);

}

}

2 个答案:

答案 0 :(得分:0)

myImageView.draw(myCanvas)在画布上的任何内容上绘制imageview,包括您之前绘制的线条。

总的来说,目前还不清楚你想要达到的目标。在config()之后,imageview已经显示在画布上的任何内容,因此将imageview绘制到自身似乎是可疑的。最后一个findViewById()也没有用处。

答案 1 :(得分:0)

使用myImageView.invalidate()而不是myImageView.draw(myCanvas)。