由于模拟器和真机分辨率不同导致你的widget显示有差异    对于分辨率问题导致的widget显示差异问题 目前没有较好的解决方案...    LZ需要在多款产品上都显示2*2个单元格的话   可以考虑获得当前设备的分辨率  加载不同的xml

解决方案 »

  1.   

    谢谢,看了下其他程序的源码,也是这样写的,但感觉跟屏幕的分辨率没有关系,因为我用的单位是"dip",与不依赖像素的单位,而且appwidget的尺寸计算方法也没错啊,单元格数*74-2,而且在布局里也设置了相同的宽度与高度,在模拟器上不同的分辨率都是正确的,是不是还有其他的原因啊,比如在androidmanifest里要设置什么,或代码这样写不对...
      

  2.   

    又试了下,好像跟系统版本有关,android 4.0开始就变为3*3单元格,android 4.0是不是计算方式变了呢?
      

  3.   

    LZ你虽然用的是dip为单位     但显示多少单元格   还与系统自带的launcher 划分当前屏幕  多少大小为一个单
    元格有关   
      

  4.   

    在frameworks中有关于appwidgets的大小管理,会主动的增加一个widget的padding。当大于某个版本时就会加上这个padding。所以你可以在app中androidmanifest.xml中设置一个小一点的版本。看你的信息中在4.0以上就会变成3x3的,说明版本大于或等于14就会有这个问题,你可以在androidmanifest.xml设置<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="13"/>