2015-03-24 2 views
13

У меня есть ImageView в моем макете, см. Ниже код. Когда я пытаюсь установить атрибут src быть мой значок запуска, я получаю следующее сообщение об ошибке:Не удается разрешить символ @ drawable/ic_launcher

Cannot resolve symbol '@drawable/ic_launcher' 

ic_launcer.png добавляется в мою папку вводимого коэффициента, см рисунок ниже. Почему я не могу ссылаться на свое изображение в моем ImageView?

Структура проекта:

Project structure

layout.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_weight="1" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <ImageView 
      android:src="@drawable/ic_launcher" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

ответ

28

Изменения (у вас нет Drawable папки):

@drawable/ic_launcher 

К (вы используете мипмап папку):

@mipmap/ic_launcher 

мипмапов - используется только для иконок - mipmap vs drawable folders

- вводимый коэффициент, используемый для целей, отличных иконок

изображений В соответствии с этим Google blogpost:

It’s best practice to place your app icons in mipmap- folders (not the drawable- folders) because they are used at resolutions different from the device’s current density.

+1

Спасибо, что объяснили разницу между папками 'drawable' и' mipmap'. – Marcus

4

ваш drawable внутри mipmap, которые должны быть использованы для приложения-пусковой установки. Если вы хотите использовать его как Drawable вы должны скопировать те внутри одной из drawable/ папок

+0

Я вижу, что сейчас, должно быть изменены, когда я обновил Android Studio. Есть ли простой способ скопировать их в мою (только созданную) папку? 'ctrl + c' и' ctrl + v', похоже, не работают внутри AS. Нужно ли мне это делать с файловым проводником? – Marcus

+1

Работает на Mac. Если вы не в окнах, используйте оболочку .. это самый быстрый способ: – Blackbelt

+0

@Marcus, [shift] + [f6], чтобы быстро переименовать папки. Мипмапы - это новый способ делать чертежи. –

Смежные вопросы