私はカスタム下記のレイアウト(ビッグ)の通知を作成:ScaleType cropCenter - アンドロイド4.xの
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"/>
</LinearLayout>
と、このような通知を作成:
private void showNotificationWithImage(Bitmap image) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.notification);
remoteViews.setImageViewBitmap(R.id.image, image);
Notification notification = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.n_icon)
.setCustomBigContentView(remoteViews)
.setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), 0))
.build();
notificationManager.notify(0, notification);
}
を表示される画像はthis oneです。アンドロイド4.1.2で
(SDKのLVL:アンドロイド5.0上方、画像がImageView
内(centerCrop
は、y軸は正確にフィット)が正しくスケーリングさで
しかし、の画像は正確に縮尺されていません。:
両方の例での解像度は同じです。
画像全体の幅をまたがる必要があるためなど
fitCenter
を使用するなど、この問題がカスタム通知(ビッグコンテンツ)内ImageView
に発生することに注意してください、ないActivities
はオプションではありません(ORの高さ)
ImageViewの高さを
wrap_content
に設定しようとしましたが、同じ問題が発生しました。ImageView
の高さを設定して画像のアスペクト比にぴったり合うように機能するようですが、アスペクト比の異なる画像を表示したい場合はオプションではありません。
誰もがこの問題を解決する方法を知っていますか?
PS:私のテストプロジェクトhereをチェックアウトすることができます。
EDIT:wrap_content
に画像の高さを設定し、rom4ek結果によって提案されるとすぐに通知がそれに当たるとして、次のようにadjustViewBounds="true"
を追加することが最大heigthです:Link to Image
画像のアスペクト比を維持する場合は、ScaleType centerInsideを使用する必要があります。またはFIT_XYの画像に収まるようにします。 –
@Chetan centerCropはアスペクト比(https://developer.android.com/reference/android/widget/ImageView.ScaleType.html)を維持し、1つの軸が正確に一致するようにイメージに適合する必要があります。 – FWeigl
はい、それはすべてのサイドイメージを切り抜き、中央からイメージを表示します。 –