ImageView在android中不起作用

将相本无种,男儿当自强。这篇文章主要讲述ImageView在android中不起作用相关的知识,希望能为你提供帮助。
我在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); }

}
答案myImageView.draw(myCanvas)将画像视图绘制在画布上的任何内容上,包括您之前绘制的线条。
【ImageView在android中不起作用】总的来说,目前还不清楚你想要达到什么目标。在config()之后,imageview已经显示在画布上的任何内容,因此将imageview绘制到自身似乎是可疑的。最后的findViewById()也没有用处。
另一答案使用myImageView.invalidate()而不是myImageView.draw(myCanvas)。

    推荐阅读