android drawable

旧街凉风 提交于 2020-11-09 11:30:08
绘制资源类型 (Drawable)类中有个setLevel()的方法他的作用是选择某个级别中可绘制的资源

有时候,我们为了在一个image view中显示不同的图片,往往会使用: 

if (条件1)


image.setBackground(R.id.xxx1); 
}

else if (条件2)


image.setBackground(R.id.xxx2); 
} ... 
可以使用setLevel()更好的实现

在xml中:

<?xml version="1.0" encoding="utf-8"?>
<level-listxmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/status_off"
        android:maxLevel="0"/>
    <item
        android:drawable="@drawable/status_on"
        android:maxLevel="1"/>
</level-list>

调用setLevel显示不同的图片

在java中:

leftPoint.getDrawable().setLevel(1);
        viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                super.onPageSelected(position);
                switch (position) {
                    case 0:
                        leftPoint.getDrawable().setLevel(1);
                        centerPoint.getDrawable().setLevel(0);
                        rightPoint.getDrawable().setLevel(0);
                        break;
                    case 1:
                        leftPoint.getDrawable().setLevel(0);
                        centerPoint.getDrawable().setLevel(1);
                        rightPoint.getDrawable().setLevel(0);
                        break;
                    case 2:
                        leftPoint.getDrawable().setLevel(0);
                        centerPoint.getDrawable().setLevel(0);
                        rightPoint.getDrawable().setLevel(1);
                        break;

                }
            }
        });
        addView(view);
    }






易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!