如何在Android上使LayerDrawable(图层列表项)不可见?

dr.*_*oom 4 android visibility view layer

我在xml文件中定义了一个包含几个项目的图层列表.项目显示确定我希望每隔五秒左右其中一个图层变得不可见.

例如,它适用于简单的textview,但不适用于LayerDrawable中的Layer

final private Runnable runnable = new Runnable() {
    public void run() {
        LayerDrawable myDrawable= (LayerDrawable)getResources().getDrawable(R.drawable.all_layers);
        Drawable layer =  myDrawable.findDrawableByLayerId(R.id.interesting_layer);
        if (layer.isVisible()==true)
        {
            layer.setVisible(false, false);
        }
        else
        {
            layer.setVisible(true, false);
        }
        TextView txt = (TextView) findViewById(R.id.txtTest);
        if (txt.getVisibility()==0)
        {
            txt.setVisibility(4);
        }
        else
        {
            txt.setVisibility(0);
        }
        handler.postDelayed(this, 5000);
    }
};
Run Code Online (Sandbox Code Playgroud)

我是否尝试以错误的方式获取图层的ID(我从这里找到了它......)?提前致谢!

yey*_*man 15

我用图层的alpha来玩.此代码将使您的图层消失:

layer.setAlpha(0);
Run Code Online (Sandbox Code Playgroud)

然后你可以再次显示它:

layer.setAlpha(255);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 是的,它完全有帮助,但为什么setVisible(假,假)不工作?在我的具体情况下,我需要隐藏其中一个drawable,所以我正在尝试执行layerDrawable.getDrawable(1).setVisible(false,false); - 为什么这不起作用? (3认同)