将相本无种,男儿当自强。这篇文章主要讲述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)。
推荐阅读
- Android(无法从mysql数据库中检索图像URL并将其显示在imageView中)
- 如何在android中使用SwipeRefreshLayout和imageView进入NestedScrollView
- 移动ImageView(Android)[重复]
- 带有setAdjustViewBounds的Android ImageView在ConstraintLayout中具有无法解释的行为
- 在android [copy]中没有设置从相机到imageview的图像
- 5+ Web项目的最佳免费jQuery和JavaScript动态甘特图
- 最佳5(最佳图像颜色提取JavaScript和jQuery插件)
- 15个最佳高级工作门户HTML模板
- 十大基于AngularJS Bootstrap的最佳高级管理模板