
我正在使用这个库: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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)