为什么我的imageView动画在大屏幕android设备中如此滞后

时间:2014-05-26 14:09:41

标签: android animation imageview

我是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);

1 个答案:

答案 0 :(得分:0)

您要添加到每个ImageView的位图大小在哪里?您要添加的位图总数以及执行此操作的时间是多少?

当你说"我的设备"和"大尺寸的屏幕",究竟是什么意思?

也许您正在尝试加载非常大的位图?另一点是您正在使用类 BitmapFactory ,这意味着您正在解码位图。解码时,大位图将使用非常大量的内存。

从适当缩放的位图开始,使用各种可绘制的文件夹加载图像(drawable-hdpi,drawable-xhdpi等),并使用适当的初始比例,并为每种屏幕尺寸分配好布局(布局大,布局正常等)避免重新缩放位图。而是使用BitmatFactory,尝试使用im.setBackgroundResource(R.drawable.image);