【发布时间】:2018-07-17 07:46:03
【问题描述】:
我已经实现了微信分享音乐功能。
iOS 上的分享效果很好。但是在 Android 上分享时,背景边缘是白色和像素化的。我在想它是由图像的低像素引起的吗?我正在寻找一种解决方案来消除这些像素化边缘。
Android 代码:
WXMusicObject musicObj = new WXMusicObject();
musicObj.MusicUrl = link; // URL to open when the song is clicked
musicObj.MusicDataUrl = userAudioURL; // URL of actual music data
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = musicObj;
int imgId = (int)typeof(Resource.Drawable).GetField("icon").GetValue(null);
Bitmap thumbBitmap = BitmapFactory.DecodeResource(Forms.Context.Resources, imgId);
Bitmap thBitmap = Bitmap.CreateScaledBitmap(thumbBitmap, 150, 150, true);
thumbBitmap.Recycle();
using (System.IO.MemoryStream outStream = new System.IO.MemoryStream())
{
thBitmap.Compress(Bitmap.CompressFormat.Png, 150, outStream);
msg.ThumbData = outStream.ToArray();
}
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.Transaction = buildTransaction("music");
req.Message = msg;
req.Scene = SendMessageToWX.Req.WXSceneSession; //chat
mWxApi.SendReq(req);
【问题讨论】:
-
原始源图像/drawable 是什么样的?原来的分辨率是多少?
-
@SushiHangover 在我看来,背景图像是图标的拉伸和模糊版本。所以我想解决这个问题是在原始图标中没有圆形边缘,而只使用一个带有右角边缘的正方形。它在 iOS 上看起来不错的原因是因为没有透明度;图标的角是白色的,如果你仔细观察,你可以看到背景图像的左上角和右上角也稍微变亮了,因为白色与图像的其余部分一起模糊。微信(至少在 Android 上)无论如何都使用方形头像,所以这就是我推荐的。
标签: xamarin xamarin.ios xamarin.android sharing wechat