2013-12-18 3 views
6

Я хочу положить изображение в качестве фона План.Android: установить фон макета, используя путь изображения

Сначала я создаю вытяжке: Drawable d = Drawable.createFromPath("pathToImageFile");

В уровне API 8layout.setBackground(d) является не поддерживается И layout.setBackgroundDrawable(d)осуждается поэтому мне нужно использовать

layout.setBackgroundResource(resourceID)

как можно Я получаю resourceID динамически генерируемого drawable.I использую этот метод:

Drawable d = Drawable.createFromPath("pathToImageFile");

для создания выдвижных.

ответ

2

Привет использовать следующий метод

public void setBackgroundDrawable (Drawable background) 

по телефону

imageView.setBackgroundDrawable(drawable); 

Добавлено в уровне API 1

EDIT: попробовать этот метод

@SuppressWarnings("deprecation") 
    private void setRes(ImageView iv,Drawable drawable){ 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) 
      iv.setBackground(drawable); 
     else 
      iv.setBackgroundDrawable(drawable); 
    } 
+0

Этот метод устарел, могу ли я его использовать? В eclipse он показывает с забастовкой в ​​коде. – ZZeyaNN

+0

этот метод лишен уровня api 16 до уровня API 15, он будет работать grt –

+0

Но для более высоких версий мое приложение не будет работать. – ZZeyaNN

0

Использование setBackground(Drawable background) метод. http://developer.android.com/reference/android/view/View.html#setBackground(android.graphics.drawable.Drawable)

+0

Проблема остается такой же. Он также использует API-уровень 16. – ZZeyaNN

+1

Использовать setBackgroundDrawable (Drawable background) от уровня API 1 – Shashika

+0

Он устарел, поэтому не может использоваться сейчас. – ZZeyaNN

0

Для API 1-15 использование

view.setBackgroundDrawable(drawable); 

для API 16 & выше использования

viw.setBackground(drawable); 
0

Как объяснен в POST по @hasanghaforian,

Вы можете получить идентификатор ресурса с помощью "getIdentifier "с кодом:

int resID = getResources().getIdentifier("org.anddev.android.testproject:drawable/bug", null, null); 

ИЛИ

int resID = getResources().getIdentifier("bug", "drawable", "org.anddev.android.testproject");  

где

bug.png является файлом в "/res/drawable/".

Тогда вы можете использовать layout.setBackgroundResource(resID).

+0

, поскольку мы динамически создаем ** drawable **, мы не знаем, что это имя, которое в данном случае является «ошибкой». – ZZeyaNN

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