位图,nullpointerexception

问题描述 投票:0回答:1

我正在尝试编写将图片转换为黑白图片的程序。我遇到了一个问题,并搜索了相同的问题,但我没有找到适合我的解决方案。这是代码:

public class MainActivity extends AppCompatActivity {

ImageView image;
Drawable drawable;
Bitmap bitmap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    image = (ImageView) findViewById(R.id.imageView);

    bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap(); **// Here is line that error occur**

    image.setImageBitmap(converter(bitmap));

}

public Bitmap converter(Bitmap first) {
     Bitmap end = Bitmap.createBitmap(first.getWidth(),
             first.getHeight(),
             first.getConfig());

堆栈跟踪:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.Bitmap android.graphics.drawable.BitmapDrawable.getBitmap()' on a null object reference
                      at com.example.murat.giveeffect.MainActivity.onCreate(MainActivity.java:26)
android bitmap android-bitmap
1个回答
1
投票

您将ImageView的位图drawable设置为background属性

android:background="@drawable/clip"

而不是src

因此,通过将background属性替换为android:src来更改资源文件(activity_main.xml):

android:src="@drawable/clip"
© www.soinside.com 2019 - 2024. All rights reserved.