как установить непрозрачность фонового изображения, не затрагивая текст

Я устанавливаю непрозрачность изображения, которое использую в качестве фона в кнопке. Но когда я устанавливаю непрозрачность кнопки, она также меняет непрозрачность текста. Я пытаюсь программно настроить текст кнопки. Но все равно не работает. Как установить непрозрачность, не влияя на непрозрачность цвета текста?

Код-

hist = (Button) findViewById(R.id.hist);
hist.setText("HISTORY");

Xml-

<Button
        android:id="@+id/hist"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/bttn"
        android:alpha=".6"
        android:gravity="center"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:textSize="@dimen/btxt"/>

Заранее спасибо.


person John R    schedule 04.04.2014    source источник
comment
Вы должны изменить альфу на изображении (bttn), а не на самой кнопке.   -  person Phantômaxx    schedule 04.04.2014
comment
Во многих отношениях. Если это png, используйте графический редактор. Если это XML-файл с возможностью рисования, он должен иметь атрибут android: alpha. Или сделайте это с помощью кода, как @Deacoy показывает в своем ответе (будет работать как с изображениями, так и с чертежами xml)   -  person Phantômaxx    schedule 04.04.2014
comment
@KlingKlang Как изменить прозрачность кнопки, не влияя на прозрачность текста кнопки? Я установил для button: alpha значение 0,25, но это также влияет на цвет текста кнопки. Как предотвратить такое поведение?   -  person gegobyte    schedule 11.09.2018
comment
@ChinmaySarupria button:alpha влияет на весь объект. Вы хотите нарисовать только фон. Поэтому подготовьте альфа-изображение 0,25 или изображение для рисования и назначьте его фону кнопки. Вот так просто.   -  person Phantômaxx    schedule 11.09.2018
comment
@KlingKlang Я последовал приведенному ниже ответу, и это сработало через код Java, это не влияет на цвет текста.   -  person gegobyte    schedule 11.09.2018
comment
@ChinmaySarupria Это потому, что xyz.getBackground().setAlpha(someValue); влияет на фон xyz.   -  person Phantômaxx    schedule 11.09.2018


Ответы (1)


Из кода:

yourButton.getBackground().setAlpha(100);
person Decoy    schedule 04.04.2014
comment
У меня нет textView. Как это сделать с текстом на кнопке? - person John R; 05.04.2014