android – 将图片设置为RemoteViews

android – 将图片设置为RemoteViews,第1张

概述我的资源文件夹中有一些SVG,我需要在我的小部件中动态设置它们(在 ImageView上). 我正在使用这个库:http://code.google.com/p/svg-android/ 该库返回Picture或PictureDrawable. 我可以看到在RemoteViews上使用的唯一方法是setImageViewBitmap,它显然需要一个位图. 我试着寻找将Drawable转换为Bitm 我的资源文件夹中有一些SVG,我需要在我的小部件中动态设置它们(在 ImageVIEw上).

我正在使用这个库:http://code.google.com/p/svg-android/

该库返回Picture或PictureDrawable.

我可以看到在RemoteVIEws上使用的唯一方法是setimageVIEwBitmap,它显然需要一个位图.

我试着寻找将Drawable转换为Bitmap的代码,如下所示:

PictureDrawable pictureDrawable = svg.createPictureDrawable();Bitmap bitmap = Bitmap.createBitmap(pictureDrawable.getIntrinsicWIDth(),pictureDrawable.getIntrinsicHeight(),Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawPicture(pictureDrawable.getPicture()); currentBitmap = bitmap;

但位图太小了.当我在Illustrator中创建位图时,我将画板大小设置为65,这是内在宽度/高度的结果.

我的小部件可以调整大小,因此ImageVIEw大小是可变的.即使我将宽度和高度静态设置为这样的大数…

Bitmap bitmap = Bitmap.createBitmap(300,300,Config.ARGB_8888);

然后生成的位图在一个小图像的下方和右侧只有一堆空白.

我想我需要以某种方式以缩放值绘制图片以及创建大小为300的Bitmap.理想情况下,我可以在运行时计算出ImageVIEw的大小,如果我知道的话,设置适当大小的Bitmap.这是最好的方法,我该怎么做?也许有一种我甚至都不知道的更好的方法?

解决方法 我没有使用androID-svg但是如果它使用的是vanilla PictureDrawables,那么它应该只是不使用内在边界的问题.

请尝试以下方法:

PictureDrawable pictureDrawable = svg.createPictureDrawable();Bitmap bitmap = Bitmap.createBitmap(300,Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); pictureDrawable.setBounds(0,bitmap.getWIDth(),bitmap.getHeight());pictureDrawable.draw(canvas); // do not access the Picture directly,that defeats the purposecurrentBitmap = bitmap;

简而言之,使用Drawable,而不是它的Picture,并将Drawable的边界设置为完整的画布.

总结

以上是内存溢出为你收集整理的android – 将图片设置为RemoteViews全部内容,希望文章能够帮你解决android – 将图片设置为RemoteViews所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1129870.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存