2015-03-24 26 views
13

Tôi có một ImageView trong bố cục của tôi, xem mã bên dưới. Khi tôi đang cố gắng để thiết lập các thuộc tính src là biểu tượng khởi chạy của tôi, tôi nhận được lỗi sau:Không thể giải quyết biểu tượng @ drawable/ic_launcher

Cannot resolve symbol '@drawable/ic_launcher' 

ic_launcer.png được thêm vào thư mục drawables của tôi, xem dưới đây hình ảnh. Tại sao tôi không thể tham chiếu hình ảnh của mình trong số ImageView?

cấu trúc dự án:

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> 

Trả lời

28

Thay đổi (bạn không có thư mục drawable):

@drawable/ic_launcher 

Để (bạn đang sử dụng mipmap thư mục):

@mipmap/ic_launcher 

mipmaps - được sử dụng để chỉ các biểu tượng - mipmap vs drawable folders

drawables - sử dụng cho hình ảnh khác so với biểu tượng

Theo Google blogpost này:

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

Cảm ơn bạn đã giải thích sự khác biệt giữa các thư mục 'drawable' và' mipmap'. – Marcus

4

bạn drawable là bên mipmap, mà phải được sử dụng để ứng dụng launcher. Nếu bạn muốn sử dụng nó như là drawable bạn nên sao chép những bên trong một trong những drawable/ thư mục

+0

tôi thấy rằng bây giờ, phải đã được thay đổi khi tôi cập nhật Android Studio. Có cách nào dễ dàng để sao chép chúng vào thư mục drawable (vừa tạo) của tôi không? 'ctrl + c' và' ctrl + v' dường như không hoạt động bên trong AS. Tôi có phải làm điều đó với trình thám hiểm tệp không? – Marcus

+1

nó hoạt động trên mac. Nếu bạn không ở trên cửa sổ, hãy sử dụng shell .. đó là cách nhanh nhất – Blackbelt

+0

@Marcus, [shift] + [f6] để đổi tên nhanh các thư mục. Mipmaps là cách mới để thực hiện drawables. –

Các vấn đề liên quan