我正在开发Android通知。
我的通知有一个进度条,我想在进度条下面显示百分比,notificationBuilder.setContentText(MyPercentage)区域。
显示进度百分比并不困难。
但我想显示我的百分比文字 正确对齐。
我的情况比那个例子更复杂,
因为我必须显示另一个有进展的信息
喜欢
============================================-------------------------------------------
blablablabla, orange, apple 50%
有没有简单的方法来对齐我的通知contentText?
如果没有,那么我该如何实现通知contentText?
答案 0 :(得分:1)
您可以使用两个TextView为通知创建自定义布局,其中一个与右侧对齐。然后为该布局创建一个RemoteViews对象(notificationView)并相应地设置构建器的内容:<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:contentDescription="@string/app_name"
android:src="@mipmap/ic_launcher" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_toRightOf="@+id/icon"
android:gravity="center_vertical"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/the_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textAppearance="@android:style/TextAppearance.Material.Notification.Title"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/some_text_left"
android:textAppearance="@android:style/TextAppearance.Material.Notification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/some_text_right"
android:textAppearance="@android:style/TextAppearance.Material.Notification"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
以下是有关创建自定义通知布局的教程:http://www.laurivan.com/android-notifications-with-custom-layout/
示例强>
通知布局:
private RemoteViews getNotificationView(){
RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.activity_temperature_notificaiton);
notificationView.setImageViewResource(R.id.icon, R.drawable.le_icon);
notificationView.setTextViewText(R.id.the_title, "OMGWTFBBQ");
notificationView.setTextViewText(R.id.some_text_left, "blablablabla, orange, apple");
notificationView.setTextViewText(R.id.some_text_right, "50%");
return notificationView;
}
创建notificationView:
private void addNotification() {
RemoteViews notificationView = getNotificationView();
if(notificationView == null)
return;
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.le_icon);
notificationBuilder.setContent(notificationView);
....
manager.notify(NOTIFICAITON_ID, notificationBuilder.build());
}
显示通知:
ApacheHttpClient