我认为这本书的代码不正确。在我家的位置试过,它运作良好。发现我的日食真的被打破了。不得不删除并重新安装eclipse。
这是我在这里的第一篇文章,所以如果我没有遵守一些规则,请告诉我。 我试图搜索并找到一些有相同错误的帖子,但他们处理字符串。 我正在关注Absolute Beginners的Android应用程序(第2版)和第179页,您将button1.xml带入res / drawable。当我进入layout / activity_main.xml并输入
时<ImageButton
android:id="@+id/button_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button1"
android:contentDescription="@string/app_name"/>
错误说明android:src“错误:错误:找不到与给定名称匹配的资源(在'src'处,值为'@ drawable / button1')。”
现在有一些令我困惑的事情,我正在使用eclipse,我有4个可绘制的文件夹(drawable-hdpi,drawable-ldpi,drawable-mdpi和drawable-xhdpi),我已经去了New&gt; File on 4个可绘制文件夹中的每一个,并导入了button1_focused.png,button1_pressed.png和button1_normal.png及其各自的分辨率。我还在每个文件夹中放了button1.xml。
button1.xml如下
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button1_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/button1_focused" />
<item android:drawable="@drawable/button1_normal" />
</selector>
我尝试了android:background而不是android:src,并且错误也出来了。我看到它的错误表明src(或后台)没有文件。只是不确定放在那里。
Java代码 package com.example.ui_designs;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
ImageButton imageButton = new ImageButton(context);
imageButton.setImageResource(R.drawable.button1);
}
答案 0 :(得分:2)
我认为这本书的代码不正确。在我家的位置试过,它运作良好。发现我的日食真的被打破了。不得不删除并重新安装eclipse。
对于由此造成的任何不便,我深表歉意,并感谢社区的帮助。
答案 1 :(得分:1)
根据Project Explorer的屏幕截图...您的button1.xml
文件夹中没有drawable-hdpi
。
如果您希望使用相同图像尺寸的alll,密度无关紧要,您可以创建一个名为“drawable
”的新文件夹,它将处理所有屏幕密度。
答案 2 :(得分:1)
我遇到了类似的问题,因为
1:我没有在@ / drawable
之后添加正确的图像名称2:我也没有在drawable-ldpi文件夹中添加图像。
<ImageView
android:id="@+id/imageDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/nasalogo">
</ImageView>
在我的情况下,我需要在drawable-ldpi文件夹中添加名为nasalogo的图像
这也是我的values / string.xml看起来像
<?xml version="1.0" encoding="utf-8"?>
PCWorldRssReaderActivity
<string name="text_image_title">Decorating the Sky</string>
<string name="text_image_date">Mon, 19 Aug 2013 00:00:00 EST </string>
<string name="text_image">nasalogo</string>
<string name="text_image_description"> This is mosaic image</string>
后来
答案 3 :(得分:0)
您可以尝试在Java代码中执行此操作吗?
ImageButton imageButton = new ImageButton(context);
imageButton.setImageResource(R.drawable.button1);
答案 4 :(得分:0)
当我对一个项目进行逆向工程时,我被这个击中了, “错误:错误:找不到与给定名称匹配的资源(在'background'处,值为'@ color / default_bg')。”
分辨率: 将以下属性添加到“/project_/res/values/colors.xml”
<color name="default_bg">#aa000000</color>
最后看起来很喜欢这个:
<resources>
<color name="black_overlay">#66000000</color>
<color name="default_bg">#aa000000</color>
</resources>
答案 5 :(得分:0)
还有另一种解决方案。 将所有图像文件夹(具有相同名称)复制到所有4个可绘制文件夹中。 并执行android:src =“@ drawable / filename” 那对我有用了!
答案 6 :(得分:0)
我在AndroidStudio中发生了这种情况,结果证明我的文件名为.png但是是jpeg。