错误找不到与给定名称匹配的资源(在'src'处,值为'@ drawable / button1')

时间:2013-01-30 19:57:41

标签: android imagebutton android-image

我认为这本书的代码不正确。在我家的位置试过,它运作良好。发现我的日食真的被打破了。不得不删除并重新安装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);

}

链接到屏幕截图:http://s7.postimage.org/3v4tu9ifv/UI_Designs.png

7 个答案:

答案 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。