2016-05-25 6 views
2

Я создал диалоговое окно со списком значков, то есть чертежей. Я создал сетку для отображения этих значков.Как преобразовать int в drawable?

Теперь я хочу получить выбранный значок и установить его в виде изображения в своей деятельности.

Как можно преобразовать это в drawable, чтобы я мог установить выбранный значок в представлении изображения моей деятельности?

диалог Код:

private void showAlertDialog() { 

     GridView gridView = new GridView(this); 

     gridView.setGravity(Gravity.CENTER); 
     gridView.setPadding(0,20,0,20); 


     int[] mThumbIds = { 
       R.drawable.roundicons05,R.drawable.roundicons08,R.drawable.roundicons02,R.drawable.roundicons03,R.drawable.roundicons04, 
       R.drawable.roundicons16,R.drawable.roundicons37,R.drawable.roundicons06,R.drawable.roundicons07,R.drawable.roundicons05, 
       R.drawable.roundicons09,R.drawable.roundicons10,R.drawable.roundicons11,R.drawable.roundicons12,R.drawable.roundicons13, 
       R.drawable.roundicons14,R.drawable.roundicons15,R.drawable.roundicons16,R.drawable.roundicons17,R.drawable.roundicons18, 
       R.drawable.roundicons19,R.drawable.roundicons20,R.drawable.roundicons22, 
     }; 

     gridView.setAdapter(new ImageAdapter(CheckListActivity.this,mThumbIds)); 
     gridView.setNumColumns(4); 
     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       // do something here 

      // icon.setImageDrawable(id); 
       imageId = position; 
       Drawable drawable = getResources().getDrawable(imageId); 
       icon.setImageDrawable(drawable); 

      } 
     }); 

     final MaterialDialog dialog = new MaterialDialog.Builder(CheckListActivity.this) 
       .customView(gridView, false) 
       .title("Select Icon") 
       .negativeText("CANCEL") 
       .canceledOnTouchOutside(true) 
       .build(); 

     dialog.show(); 


    } 

Я попытался как этот

imageId = position; 
    Drawable drawable = getResources().getDrawable(imageId); 
    icon.setImageDrawable(drawable); 

, но это бросает ни один ресурс не найден исключение.

Спасибо ..

+0

'ImageID = position' должен быть' ImageID = mThumbIds [положение] ' – Blackbelt

+0

вы можете использовать' parent.getItem (posiiton) ', а затем установить, что в качестве вытяжке – Raghunandan

ответ

7

вместо использования position как ResourceID (это не так), а получить элемент из массива mThumbIds на positions. Таким образом, ваш код должен выглядеть так:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    // do something here 
    imageId = mThumbIds[position]; 
    Drawable drawable = getResources().getDrawable(imageId); 
    icon.setImageDrawable(drawable); 

} 

Надеюсь, это поможет.

+0

получил. Спасибо .. :-) @ishmaelMakitla –

0

эта линия

imageId = position; 

должно быть, как этот

imageId = mThumbIds[position]; 
0

Метод getDrawable (INT) является устаревшим. Теперь вы можете легко использовать

icon.setImageResource(imageId); 

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

  • Нет связанных вопросов^_^