我正在尝试为通知构建自定义布局,但面临布局问题。图像显示在中间而非左侧,文本不可见。尝试过衬里布局,文字样式和颜色等,但没有运气。布局中缺少什么?
Custome_layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp" >
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginRight="10dp" />
<TextView android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image"
style="Custom Notification Title" />
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/image"
android:layout_below="@id/title"
style="Custom Notification Text" />
</RelativeLayout>
Java代码
private void sendNotification(String title, String msg, String type, String imageURl, String fullid, String alert_price, int count) {
WakeLocker.acquire(this);
//msg = msg+"Amit this is testing for long text";
long when = System.currentTimeMillis();
//count = count+5;
System.out.println(msg);
mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this).setSmallIcon(R.drawable.logo);
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
contentView.setImageViewResource(R.id.image, R.drawable.logo);
contentView.setTextViewText(R.id.title, "Amit notification");
contentView.setTextViewText(R.id.text, msg);
mBuilder.setContent(contentView);
Notification notification = mBuilder.build();
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.sound);
mNotificationManager.notify((int) when, notification);
//RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, uri);
Ringtone ring = RingtoneManager.getRingtone(getApplicationContext(), uri);
ring.play();
((Vibrator) getApplicationContext().getSystemService( Context.VIBRATOR_SERVICE)).vibrate(1600);
WakeLocker.release();
}
答案 0 :(得分:0)
试试这个。
您可能在定义@id
时遇到问题,而不是使用@+id
。
只需替换XML中的以下代码即可。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="10dp"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/image"
android:text="@string/app_name"
android:textSize="16sp" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/image"
android:text="@string/app_name"
android:textSize="16sp" />
</RelativeLayout>
它完成了。
希望这会对你有所帮助。
答案 1 :(得分:0)
这是我正在使用的徽标图片大小的问题。使用75x75的较小图像,我的布局代码按预期工作。 这是一个错误,所以我不是选择这个作为答案,但它可能对将来的人有用......