Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:AnimationDrawable压缩我的图像_Android_Imageview_Animationdrawable - Fatal编程技术网

Android:AnimationDrawable压缩我的图像

Android:AnimationDrawable压缩我的图像,android,imageview,animationdrawable,Android,Imageview,Animationdrawable,我有一种奇怪的行为,我找不到解决办法。。。 这只发生在我的模拟器API级别10中,在我的智能手机(Android 4.1)上运行良好 我编写了一个动态动画来显示滚动骰子,其中随机选择10帧作为动画帧,持续时间为50毫秒 当我按下按钮时,动画运行,但压缩到零高度。。。。。(您仍然可以从动画骰子中看到一些颜色),布局也会变得混乱。 但这并没有发生在我的手机上 以下是java代码的一部分: public void RollDice(View view) { int id=-1;

我有一种奇怪的行为,我找不到解决办法。。。 这只发生在我的模拟器API级别10中,在我的智能手机(Android 4.1)上运行良好

我编写了一个动态动画来显示滚动骰子,其中随机选择10帧作为动画帧,持续时间为50毫秒

当我按下按钮时,动画运行,但压缩到零高度。。。。。(您仍然可以从动画骰子中看到一些颜色),布局也会变得混乱。 但这并没有发生在我的手机上

以下是java代码的一部分:

public void RollDice(View view) {
    int id=-1;
        AnimationDrawable diceAnimation = new AnimationDrawable();

        //create 10 random frames from dice1.jpg to dice6.jpg into diceAnimation
        for(int j=0;j<10;j++){
            id=getResources().getIdentifier("dice"+String.valueOf(rng.nextInt(6)+1), "drawable", getPackageName());
            diceAnimation.addFrame(getResources().getDrawable(id), 50);
        }

        //assigning and starting animation
        diceAnimation.setOneShot(true);
        dice.setImageDrawable(diceAnimation);
        diceAnimation.start();
}
public void RollDice(视图){
int id=-1;
AnimationDrawable diceAnimation=新的AnimationDrawable();
//在dice1.jpg到dice6.jpg之间创建10个随机帧到diceAnimation中

因为(intj=0;j可能对您的问题有答案,请谨慎尝试,因为我自己也是初学者

ViewGroup.MarginLayoutParams mParams = new ViewGroup.MarginLayoutParams(view.getLayoutParams());

ImageView view = (ImageView)findViewById(R.id.image_dice);
layoutParams = new RelativeLayout.LayoutParams(mParams);
layoutParams.width=120;
layoutParams.height=120;
view.setLayoutParams(layoutParams);

将其应用于您的图像将动态调整.xml,至少当我从web上抓取许多大小不同的图像时,它对我有效。

我不知道您的问题是否得到解决。 但我想补充这个问题的答案

您可以尝试以下方法:

首先,将图像视图布局宽度从匹配父对象设置为换行内容

第二,使用以下代码,使骰子完全消失:


frameAnimation.setVisibility(消失);

有什么帮助吗?:(
ViewGroup.MarginLayoutParams mParams = new ViewGroup.MarginLayoutParams(view.getLayoutParams());

ImageView view = (ImageView)findViewById(R.id.image_dice);
layoutParams = new RelativeLayout.LayoutParams(mParams);
layoutParams.width=120;
layoutParams.height=120;
view.setLayoutParams(layoutParams);