android-调用XML可绘制对象的XML按钮

android-调用XML可绘制对象的XML按钮,第1张

概述我想在语言文件夹(drawable-pt)中重用可绘制文件夹上的一系列图像,因此我为语言文件夹中的每个图像创建了一个xml文件,如下所示:<?xmlversion="1.0"encoding="utf-8"?><bitmapxmlns:android="http://schemas.android.com/apkes/android"android:src="@drawable/habitat

我想在语言文件夹(drawable-pt)中重用可绘制文件夹上的一系列图像,因此我为语言文件夹中的每个图像创建了一个xml文件,如下所示:

<?xml version="1.0" enCoding="utf-8"?><bitmap xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:src="@drawable/habitat_over" />

然后我在xml文件夹中有一个表示按钮状态的xml文件:

<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:state_pressed="true"            androID:drawable="@drawable/habitat_over"/>    <item androID:drawable="@drawable/habitat" /></selector>

在布局中,我有这样的东西:

<Imagebutton androID:layout_weight="1" androID:background="@null" androID:layout_wIDth="wrap_content" androID:src="@xml/habitat_button" androID:ID="@+ID/habitat" androID:layout_height="wrap_content" androID:scaleType="fitCenter"></Imagebutton>

它应该可以工作,但是当我运行应用程序时会出现此错误:

Caused by: androID.vIEw.InflateException: Binary XML file line #17: Error inflating class <unkNown>E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.createVIEw(LayoutInflater.java:518)E/AndroIDRuntime(  409):    at com.androID.internal.policy.impl.PhoneLayoutInflater.onCreateVIEw(PhoneLayoutInflater.java:56)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.createVIEwFromTag(LayoutInflater.java:568)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:623)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:626)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:626)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.rInflate(LayoutInflater.java:626)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:408)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:320)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.inflate(LayoutInflater.java:276)E/AndroIDRuntime(  409):    at com.androID.internal.policy.impl.PhoneWindow.setContentVIEw(PhoneWindow.java:207)E/AndroIDRuntime(  409):    at androID.app.Activity.setContentVIEw(Activity.java:1657)E/AndroIDRuntime(  409):    at pnm.freiramadeira.ChapterSelection.onCreate(ChapterSelection.java:90)E/AndroIDRuntime(  409):    at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)E/AndroIDRuntime(  409):    at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:1611)E/AndroIDRuntime(  409):    ... 11 moreE/AndroIDRuntime(  409): Caused by: java.lang.reflect.InvocationTargetExceptionE/AndroIDRuntime(  409):    at java.lang.reflect.Constructor.constructNative(Native Method)E/AndroIDRuntime(  409):    at java.lang.reflect.Constructor.newInstance(Constructor.java:415)E/AndroIDRuntime(  409):    at androID.vIEw.LayoutInflater.createVIEw(LayoutInflater.java:505)E/AndroIDRuntime(  409):    ... 25 moreE/AndroIDRuntime(  409): Caused by: androID.content.res.Resources$NotFoundException: file res/xml/habitat_button.xml from drawable resource ID #0x7f050007E/AndroIDRuntime(  409):    at androID.content.res.Resources.loadDrawable(Resources.java:1697)E/AndroIDRuntime(  409):    at androID.content.res.TypedArray.getDrawable(TypedArray.java:601)E/AndroIDRuntime(  409):    at androID.Widget.ImageVIEw.<init>(ImageVIEw.java:118)E/AndroIDRuntime(  409):    at androID.Widget.Imagebutton.<init>(Imagebutton.java:85)E/AndroIDRuntime(  409):    at androID.Widget.Imagebutton.<init>(Imagebutton.java:81)E/AndroIDRuntime(  409):    ... 28 moreE/AndroIDRuntime(  409): Caused by: androID.content.res.Resources$NotFoundException: file res/drawable-pt/habitat_over.xml from drawable resource ID #0x7f02002fE/AndroIDRuntime(  409):    at androID.content.res.Resources.loadDrawable(Resources.java:1697)E/AndroIDRuntime(  409):    at androID.content.res.Resources.getDrawable(Resources.java:581)E/AndroIDRuntime(  409):    at androID.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:162)E/AndroIDRuntime(  409):    at androID.graphics.drawable.Drawable.createFromXmlinner(Drawable.java:787)E/AndroIDRuntime(  409):    at androID.graphics.drawable.Drawable.createFromXml(Drawable.java:728)E/AndroIDRuntime(  409):    at androID.content.res.Resources.loadDrawable(Resources.java:1694)E/AndroIDRuntime(  409):    ... 32 moreE/AndroIDRuntime(  409): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: <bitmap> requires a valID src attributeE/AndroIDRuntime(  409):    at androID.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:375)E/AndroIDRuntime(  409):    at androID.graphics.drawable.Drawable.createFromXmlinner(Drawable.java:787)E/AndroIDRuntime(  409):    at androID.graphics.drawable.Drawable.createFromXml(Drawable.java:728)E/AndroIDRuntime(  409):    at androID.content.res.Resources.loadDrawable(Resources.java:1694)E/AndroIDRuntime(  409):    ... 37 more

有谁知道为什么会这样吗?

提前致谢!!

解决方法:

即使没有真正记载,也可以将< bitmap>的androID:src属性仅接受图像文件(不接受XML定义的可绘制对象).

而不是在位图中包含src =“ @ drawable / habitat_over”并引用该< bitmap>从您的布局中删除< bitmap>并将直接引用从布局添加到@ drawable / habitat_over.

总结

以上是内存溢出为你收集整理的android-调用XML可绘制对象的XML按钮全部内容,希望文章能够帮你解决android-调用XML可绘制对象的XML按钮所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1070669.html

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

发表评论

登录后才能评论

评论列表(0条)

保存