2015-02-01 5 views
0

Я пытаюсь взять растровое изображение и отобразить его в ImageView.setImageBitmap получает ошибки синтаксиса

ImageView iv = new ImageView(this); 

Bitmap bMap = BitmapFactory.decodeFile("/res/drawable/" + imageFileName); 
iv.setImageBitmap(bMap); 

Это мой код для этого. Я создаю ImageView и Bitmap. Я хочу отобразить битмап в моем ImageView. Но я всегда получаю эти две ошибки на iv.setImageBitmap(bMap); даного

Syntax error on token "bMap", VariableDeclaratorId expected after this token  
Syntax error on token(s), misplaced construct(s)  

ли кто-нибудь имеет представление о том, почему это происходит и что я должен изменить?

+0

Возможно, [this] (http://stackoverflow.com/questions/19716378/string-declaration-variabledeclaratorid-expected-after-this-token) ссылка поможет вам, и это будет верный ответ. – GIGAMOLE

+0

Почему вы используете decodeFile? Вы должны использовать «Bitmap bitmap = BitmapFactory.decodeResource (getResources(), R.drawable.example);' если у вас есть имя изображения, например example.jpg/png, в папке res/drawable. –

+0

Кроме того, '/ res/drawable' не указывает внутри вашего apk, а на всю файловую систему. Поэтому гарантированно не работать (как предполагалось). –

ответ

0

В pastebin code ФП, я нашел следующий фрагмент кода:

String imageFileName =getIntent().getStringExtra("imageFileName"); 
//String bildquelle = "R.drawable." + imageFileName; 

public class ImageChange extends Activity {   
    ImageView iv = new ImageView(this); 
    String bildquelle = "R.drawable." + imageFileName; 
    int id = getResources().getIdentifier(bildquelle, "drawable", getPackageName()); 

    Bitmap bMap = BitmapFactory.decodeResource(getResources(), id); 
    //Bitmap bMap = BitmapFactory.decodeFile("/res/drawable/" + imageFileName); 
    iv.setImageBitmap(bMap); 
} 

Есть несколько проблем с этим в том числе:

  1. Код не внутри тела метода.
  2. Код Activity подкласс.
  3. Код ненадлежащим образом называет getResources().getIdentifier(...).

Вместо приведенного выше кода я предлагаю СЛИЯНИЕ остальную часть деятельности со следующим:

public class BildAnzeigen extends ActionBarActivity { 

    ImageView iv; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_bild_anzeigen); 
    iv = (ImageView) findViewById(R.id.my_image_view); // replace the id with the one from layout definition 

    handleIntent(getIntent()); 
    } 

    private void handleIntent(Intent intent) { 
    String imageFileName = intent.getStringExtra("imageFileName"); 
    int id = getResources().getIdentifier(imageFileName, "drawable", null); 
    Bitmap bMap = BitmapFactory.decodeResource(getResources(), id); 
    iv.setImageBitmap(bMap); 
    } 
} 

Примечание: Это не будет работать, если изображения не компилируются в вашем APK. После сборки невозможно добавить что-либо к чертежам. Это просто не работает.

+0

ok thx, который действительно помог мне ... как я могу сделать это с изображением с SD-карты, из которой я знаю имя и путь? – Tim

+0

@ Посмотрите это сообщение http: // stackoverflow.com/questions/27662279/why-am-i-get-wrong-phone-and-sdcard-memory-information/27662469 # 27662469 вы должны использовать этот подход, поскольку расположение SD-карты зависит от устройства. Это может быть '/ sdcard','/storage/sdcard1' и т. Д. –

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