锁定屏幕上的 Android MediaMetadata 图像已缩放

Posted

技术标签:

【中文标题】锁定屏幕上的 Android MediaMetadata 图像已缩放【英文标题】:Android MediaMetadata image on lockscreen is zoomed 【发布时间】:2015-04-09 15:59:35 【问题描述】:

播放媒体时,我可以通过

将媒体图像放在锁屏上
RemoteControlClient.MetadataEditor editor = remoteControlClient.editMetadata(true);
editor.putBitmap(RemoteControlClient.MetadataEditor.BITMAP_KEY_ARTWORK, bitmap);

MediaMetadataCompat.Builder builder = new MediaMetadataCompat.Builder();
builder.putBitmap(MediaMetadataCompat.METADATA_KEY_ART, bitmap);

但是,如果我使用横向源图像 (16:9) 并且锁屏方向是纵向,则背景图像会缩放(平移和扫描)而不是字母框。有没有什么api可以用来强制缩放方法,或者系统只会以这种方式渲染图像?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题(在手机锁屏和 android Auto 上),我还没有找到解决方案,但我认为你可以做一个技巧:

在您的位图顶部和上方添加一个透明填充以适合锁定屏幕,这里是使您的位图方形的代码,您可以从中获得灵感,使您的位图适合屏幕比例:

public static Bitmap createSquaredBitmap(Bitmap srcBmp)                

    int dim = Math.max(srcBmp.getWidth(), srcBmp.getHeight());
    Bitmap dstBmp = Bitmap.createBitmap(dim, dim, Bitmap.Config.ARGB_8888);

    Canvas canvas = new Canvas(dstBmp);
    canvas.drawColor(Color.TRANSPARENT);
    canvas.drawBitmap(srcBmp, (dim - srcBmp.getWidth()) / 2, (dim - srcBmp.getHeight()) / 2, null);

    return dstBmp;

【讨论】:

以上是关于锁定屏幕上的 Android MediaMetadata 图像已缩放的主要内容,如果未能解决你的问题,请参考以下文章

锁定屏幕上的 Android MediaMetadata 图像已缩放

如何在android中启用“在锁定屏幕中显示”权限

如何检测 iPhone 上的屏幕锁定/解锁事件?

如何在Android中锁定屏幕时长按电源按钮启用GPS?

Android如何在屏幕上显示通知

如何在屏幕镜像期间锁定Android屏幕?