Textview drawable не отображает отображаемое изображение в удаленном представлении

#android #android-layout #android-remoteview

#Android #android-layout #android-remoteview

Вопрос:

Я пытаюсь отобразить отображаемое текстовое представление в уведомлении Android, но текст отображается, но отображаемое не отображается. Я хочу, чтобы отображаемое изображение отображалось вместе с текстовым сообщением.

Я попытался настроить заполнение отступов. Я установил setCompoundDrawablesWithIntrinsicBounds для текстового представления внутри удаленного представления, но я не могу увидеть значок для рисования.

Макет

 <RelativeLayout android:id="@ id/notification_carousel"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:paddingBottom="8dp"
    android:paddingTop="8dp">
    <TextView
        android:id="@ id/notification_action_error"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="8dp"
        android:textSize="16sp"
        android:gravity="bottom"
        android:textAlignment="gravity"
        android:textStyle="bold"
        android:drawableStart="@drawable/ic_error"
        android:layout_above="@ id/notification_action_list"
        android:layout_marginStart="16dp"
        android:visibility="visible"
        android:text="Error message to be displayed"
        android:layout_marginEnd="16dp" />

    <!--buttons-->
    <Button
        android:id="@ id/notification_action_list"
         android:layout_width="match_parent"
        android:layout_height="36dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_alignWithParentIfMissing="true"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp" />

</RelativeLayout>
  

Макет кода виджета уведомлений

 Context context = ... // Initialize context
String channelId = ... // Initialise channel Id.
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId);

RemoteViews rootView = new RemoteViews(context.getPackageName(), R.layout.notificiation);
rootView.setViewVisibility(R.id.notification_action_error, View.VISIBLE);

rootView.setTextViewCompoundDrawables(R.id.notification_action_error, 0, 0, 0, 0);
  

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

Я также пытался

 rootView.setTextViewCompoundDrawables(R.id.notification_action_error, R.layout.ic_error, 0, 0, 0);
  

после удаления android:drawable атрибута из текстового представления, но я получаю то же значение.

https://imgur.com/a/hmKZbp1

Комментарии:

1. Хороший вопрос здесь… и добро пожаловать на уровни повышения. Это позволяет вам выразить свою признательность за полезный контент, даже если он не отвечает на ваш вопрос.

Ответ №1:

В nofication Builder вы можете вызывать эти методы для отображения значков уведомлений.

 NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.app_icon))
            .setSmallIcon(R.drawable.app_icon)
  

Комментарии:

1. Это не значок уведомления. Я хочу отобразить отображаемый значок в текстовом представлении.