Android,setVisbility在RelativeLayout中不起作用

eva*_*eus 7 android android-animation android-layout

我使用的是RelativeLayout的把一个旋转的纺丝动画上的占位符图像的顶部,而实像在后台线程加载.

当真正的位图准备就绪时,下面的代码在带有Activity.runOnUiThread(Runnable)的UI线程中运行

问题是,我在加载真实图像后隐藏旋转图像的所有尝试似乎都失败了.我最终通过将底层的imageview带到前面来实现它,但我只是好奇为什么setVisibility(View.GONE)和我尝试的其他方法都不起作用.我尝试了各种方法试图隐藏旋转动画,但没有一个工作.

微调器图像仅在ImageView中声明为:

android:src="@drawable/spinner_black_20"
Run Code Online (Sandbox Code Playgroud)

然后我开始一个旋转动画.一旦加载了真实图像,这就是我试图隐藏它的地方(在上面提到的UI线程中)

View v = (View)imageView.getParent();
ImageView spinner = (ImageView) v.findViewById(R.id.loading_spinner);
if (spinner != null) {
    spinner.getAnimation().cancel(); // this works, the animation stops
    spinner.setVisibility(View.INVISIBLE); // doesn't work, spinner bitmap still there
    spinner.setVisibility(View.GONE); // doesn't work
    spinner.getDrawable().setVisible(false, false); // tried this, no joy
    spinner.refreshDrawableState(); // thought this might help, nope
    spinner.invalidate(); // nor this
    imageView.bringToFront(); // this works, in that spinner disappears to background
}
imageView.setImageBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)

sim*_*son 62

尝试spinner.clearAnimation();在setVisibility之前调用.

Rich提到的是......