Как сделать LayerDrawable (элемент списка слоев) невидимым на Android? - PullRequest
3 голосов
/ 09 марта 2011

Я определил список слоев с парой элементов в XML-файле.Элементы отображаются нормально. Я хочу, чтобы каждые пять секунд или около того один из слоев становился невидимым.

Он работает нормально для простого текстового представления, например, но не для Layer внутри LayerDrawable

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);
    }
};

Пытаюсь ли я неправильно получить идентификатор слоя (я нашел его отсюда ...)?Заранее спасибо!

1 Ответ

14 голосов
/ 25 июня 2011

Я сделал это, играя с альфой слоя.Этот код заставит ваш слой исчезнуть:

layer.setAlpha(0);

И затем вы можете снова отобразить его с помощью:

layer.setAlpha(255);

Надеюсь, это поможет.

...