【问题标题】:Handling remoteviews in android widget在 android 小部件中处理远程视图
【发布时间】:2012-01-10 03:54:07
【问题描述】:

我是 android 小部件的新手,目前我正在开发使用更多图像的小部件,它运行完美但有时会抛出错误 Failed Binder Transaction, 我知道问题出在远程视图上,谁能告诉我如何在 android 小部件中处理远程视图?

【问题讨论】:

    标签: android android-widget


    【解决方案1】:

    这是因为对 RemoteViews 的所有更改都是序列化的(例如 setInt 和 setImageViewBitmap )。位图也被序列化为一个内部包。不幸的是,这个捆绑包的大小限制非常小。

    确保缩小位图。请参考以下代码。

     public static Bitmap scaleDownBitmap(Bitmap photo, int newHeight, Context context) {
    
     final float densityMultiplier = context.getResources().getDisplayMetrics().density;        
    
     int h= (int) (newHeight*densityMultiplier);
     int w= (int) (h * photo.getWidth()/((double) photo.getHeight()));
    
     photo=Bitmap.createScaledBitmap(photo, w, h, true);
    
     return photo;
     }
    

    这个 newHeight 应该很小(它应该在屏幕上占据的每个正方形约为 100)并将它用于您的小部件,您的问题将得到解决:)

    【讨论】:

      猜你喜欢
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2013-06-06
      • 2014-01-16
      • 1970-01-01
      • 2014-10-03
      相关资源
      最近更新 更多