#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
атрибута из текстового представления, но я получаю то же значение.
Комментарии:
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. Это не значок уведомления. Я хочу отобразить отображаемый значок в текстовом представлении.