将alpha设置为XML drawable中的位图不适用于API Level 20及更低版本

时间:2016-05-25 06:48:42

标签: android android-bitmap android-selector xml-drawable

我在bitmap(选择器)中将{alpha}设置为XML,并且API level 23 , 22 , 21上的工作正常,但它不适用于API level 20及以下{ {1}}。

API levels

修改

请使用<selector xmlns:android="http://schemas.android.com/apk/res/android"> <!--State Selected--> <item android:drawable="@drawable/item_selected" android:state_selected="true"/> <!--State Normal--> <item > <bitmap android:src="@drawable/item_selected" android:alpha="0.6"/> </item> 建议我做一些替代方法。

2 个答案:

答案 0 :(得分:2)

以编程方式设置alpha将起作用。试试这个。

我已尝试将您的选择器作为此ImageView的背景:

<ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/select"
    />

我的java代码:

imageView = (ImageView)findViewById(R.id.imageView);
    imageView.setAlpha(0.5f);
    imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Toast.makeText(MainActivity.this, ""+imageView.isSelected()
                    , Toast.LENGTH_SHORT).show();
            if(imageView.isSelected())
            {
                imageView.setSelected(false);
                // set alpha 0.5
                imageView.setAlpha(0.5f);
            }
            else {
                imageView.setSelected(true);
                // set alpha 1
                imageView.setAlpha(1f);
            }
        }
    });

答案 1 :(得分:1)

在API 21处添加了

位图元素的alpha属性 所以没有办法在xml中设置alpha。 你可以根据Janki Gadhiya的答案使用代码设置alpha。