【发布时间】:2014-12-28 01:49:53
【问题描述】:
在这方面真的需要一些帮助...
请看一下这个简单的 ImageView 淡入淡出动画,使用完整的 java 代码。使用 API 的 21、18、17、16.. 重新创建它非常完美。现在尝试使用 API 19 (android 4.4.2),创建有趣的面具(见下面的解释):
public class _ExampleAnimationNotWorking extends Activity {
Common common; // my own class to read assets
FrameLayout fl;
ImageView iv;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.common = new Common(this,this);
this.fl = new FrameLayout(this);
this.iv = new ImageView(this);
FrameLayout.LayoutParams flparam = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,FrameLayout.LayoutParams.MATCH_PARENT);
LayoutParams lparam = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
iv.setImageBitmap(common.newImage("iv_image.png", ImageFormat.RGB565).getBitmap());
iv.setX(50);
iv.setY(0);
fl.addView(iv, lparam);
this.setContentView(fl, flparam);
AlphaAnimation animation = new AlphaAnimation(0,1);
animation.setDuration(3000);
iv.setAnimation(animation); // may skip frames if not used in API19 (thats another problem)
iv.startAnimation(animation);
} ....
在动画期间,Android 4.4.2 (API19) 会在 ImageView 大小边界之外创建一个黑色蒙版,从 x/y 坐标 (0 + imageWidth / 0 + imageHeight) 开始,因此如果您最初将图像放置在该坐标之外,您看不到任何动画,只有动画末尾的原始图像。要重新创建问题,我已将图像放置在 x = 50 中。在 Android 4.4.2 动画期间,您会看到图像的右半边是黑色的。您可以使用具有您喜欢的任何屏幕设置大小的模拟器重新创建。
将“lparam”从 WRAP_CONTENT 更改为 MATCH_PARENT 或其他宽度/高度不是解决方案。它应该与其他版本中的方式相同(注意我也在 4.4.3 和 4.4.4 中尝试过,并且效果很好)。这可能是 4.4.2 java 代码动画的错误,因为如果您使用 XML 方法,它在 API19 上完美运行。我需要一个解决方案或解决这个问题,因为我的整个项目都是基于纯 java 代码,并且不能排除 KitKat 4.4.2 作为项目的目标。
谢谢。
PD:> 有些人来这里是为了什么?可以更正我的帖子,但要给我-2分吗?不是我的问题的解决方案,如果我需要一些要点来附加与此问题相关的图像,则更多。谢谢CBredlow!
已编辑:我需要上传解释此问题的图片,但由于它对新用户不太友好,请点击此链接查看图片:
http://forum.xda-developers.com/showpost.php?p=56553476&postcount=2
【问题讨论】:
-
由于问题指向实际主题的不同标题,我将创建这个新主题。原始主题位于:stackoverflow.com/questions/26679801/…。现在这是完美的,我希望获得一些积分来放置说明这个问题的图像,而我只是得到 -2..
标签: java android animation android-4.4-kitkat