Android 在哪里放置PNG文件以及如何在XML布局中从ImageView引用它们?
在阅读了两本关于Android编程的书之后,我正在尝试移植一个iOS文字游戏应用程序: 我希望有两个类继承自Android 在哪里放置PNG文件以及如何在XML布局中从ImageView引用它们?,android,android-imageview,android-assets,Android,Android Imageview,Android Assets,在阅读了两本关于Android编程的书之后,我正在尝试移植一个iOS文字游戏应用程序: 我希望有两个类继承自视图-和 这两个类都应该由一个ImageView(id:“image”)和两个textview(id:“字母”和“值”)组成 它们之间的区别在于BigTile是可拖动的,其“图像”有阴影 我已将图形资源放入目录中,并尝试从布局文件中引用它们,如下所示: 但是我得到了错误 未找到与给定名称匹配的资源 (在“src”处,值为“@drawable/small_tile.png”) 正如您在
视图
-和
这两个类都应该由一个ImageView
(id:“image”)和两个textview
(id:“字母”和“值”)组成
它们之间的区别在于BigTile是可拖动的,其“图像”有阴影
我已将图形资源放入目录中,并尝试从布局文件中引用它们,如下所示:
但是我得到了错误
未找到与给定名称匹配的资源
(在“src”处,值为“@drawable/small_tile.png”)
正如您在Eclipse屏幕截图(此处)中所看到的:
我也为我的资产尝试了其他路径-例如res/drawables
和src/assets
还有另一个问题:如何从视图加载布局文件
现在只有一个ImageView
,但我想在那里添加两个TextView
s(用于字母及其数值),然后从中加载它
从编程书籍中,我知道如何从Activity
或Fragment
-调用setContentView(R.layout.Activity\u main)加载布局在onCreate
中的code>-但是在视图中调用的位置和内容?在引用可绘图项时,只能通过其文件名来引用它们。你应该省略扩展名
例如,您发布的ImageView在XML中应该如下所示:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/small_tile" >
看起来您在其他布局文件中还有其他错误,请修复它们,以便正确生成资源。在emulator中,当我从small_tile.xml和big_tile.xml中的ImageView中删除src
属性时,其他一切都可以正常编译并运行。我的应用程序在GitHub上-你可以自己看到这一点:看起来你的代码找不到资源。可能是一个干净的问题,或者您的布局/xml文件中有一个问题,或者您的资源名称中有一个非法字符?我已再次重命名PNG文件,以确保它们的名称中只有拉丁字母。我在Eclipse中多次发布了“刷新”和“清理项目”,并重新启动了Eclipse。+1删除.png
有帮助,谢谢。您对如何使用SmallTile.java(基于视图的类)中的small_tile.xml有什么建议吗?我更新了我的答案。您可能也会发现有帮助。要使用LayoutInflater.inflate()
我必须将SmallTile
的基类从View
更改为ViewGroup
。
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/small_tile" >
public SmallTile(Context context) {
LayoutInflater inflater = LayoutInflater.from(context);
inflater.inflate(R.layout.my_view_layout, this);
}