2024年1月1日发(作者:)
加载widget出错解决方法在加载widget时出现错误:
D/AppWidgetHostView( 122): remoteViews ==
Views@43e1a820
W/ResourceType( 122): Failure getting entry for 0x7f020001 (t=1 e=1) in
package 0: 0xffffffb5
W/AppWidgetHostView( 122): updateAppWidget couldn't find any view, using
error view
W/AppWidgetHostView( 122): eException: Binary XML file
line #8: Error inflating class iew
W/AppWidgetHostView( 122): at
View(:513)
W/AppWidgetHostView( 122): at
teView(:56)
W/AppWidgetHostView( 122): at
ViewFromTag(:563)
W/AppWidgetHostView( 122): at
te(:618)
W/AppWidgetHostView( 122): at
e(:407)
W/AppWidgetHostView( 122): at
e(:320)
W/AppWidgetHostView( 122): at
(:930)
W/AppWidgetHostView( 122): at
AppWidget(:221)
W/AppWidgetHostView( 122): at
AppWidget(:155)
W/AppWidgetHostView( 122): at
View(:218)
W/AppWidgetHostView( 122): at
teAddAppWidget(:911)
W/AppWidgetHostView( 122): at
vityResult(:542)
W/AppWidgetHostView( 122): at
Widget(:1188)
W/AppWidgetHostView( 122): at
vityResult(:539)
W/AppWidgetHostView( 122): at
chActivityResult(:3890)
W/AppWidgetHostView( 122): at
rResults(:3511)
W/AppWidgetHostView( 122): at
SendResult(:3557)
W/AppWidgetHostView( 122): at
$2800(:125)
W/AppWidgetHostView( 122): at
tyThread$Message(:2063)
W/AppWidgetHostView( 122): at
chMessage(:99)
W/AppWidgetHostView( 122): at (:123)
W/AppWidgetHostView( 122): at
(:4627)
W/AppWidgetHostView( 122): at
Native(Native Method)
W/AppWidgetHostView( 122): at
(:521)
W/AppWidgetHostView( 122): at
Init$(:868)
W/AppWidgetHostView( 122): at
(:626)
W/AppWidgetHostView( 122): at (Native
Method)
W/AppWidgetHostView( 122): Caused by:
tionTargetException
W/AppWidgetHostView( 122): at
iew.
W/AppWidgetHostView( 122): at
uctNative(Native Method)
W/AppWidgetHostView( 122): at
tance(:446)
W/AppWidgetHostView( 122): at
View(:500)
W/AppWidgetHostView( 122): ... 26 more
W/AppWidgetHostView( 122): Caused by:
ces$NotFoundException: Resource is not a
Drawable (color or path): TypedValue{t=0x1/d=0x7f020001 a=-1
r=0x7f020001}
W/AppWidgetHostView( 122): at
awable(:1681)
W/AppWidgetHostView( 122): at
wable(:601)
W/AppWidgetHostView( 122): at
iew.
W/AppWidgetHostView( 122): ... 30 more
W/InputManagerService( 58): Window already focused, ignoring focus gain
of: MethodClient$Stub$Proxy@44044528
经过查找原因是屏幕像素的问题,HVGA屏density=160;QVGA屏density=120;WVGA屏=240;WQVGA屏density=120
density值表示每英寸有多少个显示点,与分辨率是两个概念。
不同density下 屏幕分辨率信息,以480dip*800dip的
WVGA(density=240)为例
density=120时 屏幕实际分辨率为240px*400px
(两个点对应一个分辨率)
状态栏和标题栏高各19px或者25dip
横屏是屏幕宽度400px
或者800dip,工作区域高度211px或者480dip
竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip
density=160时 屏幕实际分辨率为320px*533px
(3个点对应两个分辨率)
状态栏和标题栏高个25px或者25dip
横屏是屏幕宽度533px
或者800dip,工作区域高度295px或者480dip
竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip
density=240时 屏幕实际分辨率为480px*800px
(一个点对于一个分辨率)
状态栏和标题栏高个38px或者25dip
横屏是屏幕宽度800px
或者800dip,工作区域高度442px或者480dip
竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip
apk的 资源包中,当屏幕density=240时使用hdpi
标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
布局时尽量使用单位dip,少使用px
在java的资源文件res里有drawable drawable-hdpi drawable-ldpi
和drawable-mdpi四个目录,在drawable-hdpi drawable-ldpi和drawable-mdpr这三个目录分别对应这个三个不同的屏幕分辨率,
当屏幕的分辨率是这三个其中之一时,在加载图片是会去对应的目录去找图片,如果没有找到就会报错,drawable-hdpi drawable-ldpi和drawable-mdpr这三个目录对应的分辨率分别是480X800、240X400和
320X533
drawable这个目录不能忽略,你可以把所有的图片都放到这个目录下,这个目录下不分屏幕的分辨率(及不管屏幕的分辨率是多少,系统都会先去这个目录去找,找不到了在会去相应的分辨率的目录下去找)


发布评论