我是android初学者,并试图编写一个可以动态添加imageViews到基本RelativeLayout的Android应用程序。它在我的Android设备上表现不错,但在我朋友的屏幕尺寸很大的设备上表现不佳。我用Google搜索很长时间但无法找到解决方案。以下是我的代码的一部分,任何人都可以帮助我吗?
ImageView im = new ImageView(GameActivity.this);
im.setImageBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.image);
RelativeLayout.LayoutParams param =new RelativeLayout.LayoutParams(imageWidth,imageHeight);
wholeView.addView(im, param);
im.setX(x);
im.setY(y);
im.setRotation((float) (-15 + Math.random() * 30 + 90));
dealAnimation = new TranslateAnimation(-x,0,-y,0);
dealAnimation.setDuration(500);
dealAnimation.setRepeatCount(0);
im.startAnimation(dealAnimation);
答案 0 :(得分:0)
您要添加到每个ImageView的位图大小在哪里?您要添加的位图总数以及执行此操作的时间是多少?
当你说"我的设备"和"大尺寸的屏幕",究竟是什么意思?
也许您正在尝试加载非常大的位图?另一点是您正在使用类 BitmapFactory ,这意味着您正在解码位图。解码时,大位图将使用非常大量的内存。
从适当缩放的位图开始,使用各种可绘制的文件夹加载图像(drawable-hdpi,drawable-xhdpi等),并使用适当的初始比例,并为每种屏幕尺寸分配好布局(布局大,布局正常等)避免重新缩放位图。而是使用BitmatFactory,尝试使用im.setBackgroundResource(R.drawable.image);