Форма фона виджетов приложения Android изменяет непрозрачность цвета программно - PullRequest
0 голосов
/ 07 сентября 2018

Я разработал виджет приложения с закругленными углами.Я в основном установил фон для рисования в корень макета виджета приложения.

Теперь я пытаюсь изменить его непрозрачность фона без потери круглых углов.

Я знаю, что RemoteViewsдовольно ограничены.

Сейчас я использую этот код: views.setInt(R.id.root_layout_widget, "setBackgroundColor", ColorUtils.setAlphaComponent(Color.WHITE, opacity))

Но так я теряю закругленные углы.Если бы я не использовал RemoteViews, я бы получил фон элемента и установил его альфа.

Мой корневой элемент - LinearLayout, и мой фон для рисования выглядит следующим образом:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@android:color/white" />
    <corners android:radius="2dp" />
</shape>

Знаете ли вы какие-либо способы сделать это?Спасибо

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

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

0 голосов
/ 07 сентября 2018

Вы можете попробовать этот код

int transparency = 192;(the amount of opacity level you want to give)

views.setInt(R.id.root_layout_widget, "setBackgroundColor", transparency);

вместо

views.setInt(R.id.root_layout_widget, "setBackgroundColor", ColorUtils.setAlphaComponent(Color.WHITE, opacity))
...