2013-09-30 29 views
0

我需要最小的Android位圖加載器。此代碼拋出NullPointerException異常(「無法啓動活動ComponentInfo」):Android最小位圖加載器

package com.example.testbitmap; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     String photoPath = "/storage/sdcard0/Pictures/image.jpeg"; 
     Bitmap bitmap = BitmapFactory.decodeFile(photoPath); 
     ImageView iv = (ImageView) findViewById(R.id.imageView1); 
     iv.setImageBitmap(bitmap); 
     setContentView(iv); 
    } 

} 

回答

1
ImageView iv = (ImageView) findViewById(R.id.imageView1); 
iv.setImageBitmap(bitmap); 
setContentView(iv); 

你應該setContentView();另一個佈局(如iv應在佈局)或創建iv,而不是發現它

還的,在findViewById調用之前放setContentView

1

你總是必須先在你的活動中設置你的佈局,之後你可以訪問你的佈局的視圖。

鑑於您先訪問了您的視圖,然後設置了錯誤的佈局。 做的修改在你的onCreate(),如下:

setContentView(R.layout.mylayout); //provide your layout file name where your ImageView resides. 
    ImageView iv = (ImageView) findViewById(R.id.imageView1); 
    iv.setImageBitmap(bitmap); 

OR

如果要動態地創建ImageView,然後你想將其設置爲View然後做如下:

ImageView iv =new ImageView(); 
    setContentView(iv); 
    iv.setImageBitmap(bitmap);