Ошибка Не найден ресурс, который соответствует данному имени (в 'src' со значением '@drawable/button1')
Я думал, что книга имела неправильный код. Попробовал в моем доме, и это сработало. Выяснилось, что мое затмение действительно сломано. Пришлось снять и заново установить затмение.
Это мой первый пост здесь, поэтому, если я не следовал некоторым правилам, пожалуйста, дайте мне знать. Я попытался найти и нашел несколько постов с той же ошибкой, но они имели дело со строками. Я слежу за 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 "error: Error: Ресурс не найден, что соответствует указанному имени (в 'src' со значением '@drawable/button1')."
Теперь меня смущает несколько вещей: я использую eclipse, и у меня есть 4 папки для рисования (drawable-hdpi,drawable-ldpi, drawable-mdpi и drawable-xhdpi), я перешел в New>File на каждом из 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 Code 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 ответов
Я думал, что книга имела неправильный код. Попробовал в моем доме, и это сработало. Выяснилось, что мое затмение действительно сломано. Пришлось снять и заново установить затмение.
Я прошу прощения за причиненные неудобства и благодарю сообщество за помощь.
Согласно скриншоту вашего Project Explorer... у вас нет button1.xml
в вашем drawable-hdpi
папка.
Если вы хотите использовать все изображения одинакового размера, плотность не имеет значения, вы можете создать новую папку, которая называется ничем иным, как просто drawable
который будет обрабатывать все плотности экрана.
У меня была похожая проблема, потому что
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>
В моем случае мне нужно было добавить изображение под названием nasalogo в мою папку drawable-ldpi
Также это то, как выглядит мой 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>
Потом
У меня это произошло в AndroidStudio, и оказалось, что мой файл был назван.png, но был в формате JPEG.
Я был поражен этим, когда выполнял обратный инжиниринг проекта: "ошибка: ошибка: не найден ресурс, который соответствует данному имени (в" 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>
Не могли бы вы попробовать сделать это в своем коде Java?
ImageButton imageButton = new ImageButton(context);
imageButton.setImageResource(R.drawable.button1);
Есть и другое решение. Скопируйте все папки с изображениями (с одинаковыми именами) во все 4 папки для рисования. и запустите android:src="@drawable/filename". Тогда это сработало!