如何在android中对齐通知内容文本

时间:2016-05-20 09:32:52

标签: android

我正在开发Android通知。

我的通知有一个进度条,我想在进度条下面显示百分比,notificationBuilder.setContentText(MyPercentage)区域。

显示进度百分比并不困难。

我想显示我的百分比文字 正确对齐。

This is an example picture.

我的情况比那个例子更复杂,

因为我必须显示另一个有进展的信息

喜欢

============================================-------------------------------------------

blablablabla, orange, apple                                                      50%

有没有简单的方法来对齐我的通知contentText?

如果没有,那么我该如何实现通知contentText?

1 个答案:

答案 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