0

我需要最小的 Android 位图加载器。此代码抛出 NullPointerException("Unable to start activity ComponentInfo"):

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);
    }

}
4

2 回答 2

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

你应该setContentView();另一个布局(iv应该在布局中)或创建iv而不是找到它

另外,setContentView在任何findViewById电话之前

于 2013-09-30T10:36:26.147 回答
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);

或者

如果你想动态创建ImageView,然后你想设置它,View那么请执行以下操作:

  ImageView iv =new ImageView(); 
    setContentView(iv);
     iv.setImageBitmap(bitmap);
于 2013-09-30T10:39:14.323 回答