位图,nullpointerexception

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位图,nullpointerexception相关的知识,希望对你有一定的参考价值。

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

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)
答案

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

android:background="@drawable/clip"

而不是src

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

android:src="@drawable/clip"

以上是关于位图,nullpointerexception的主要内容,如果未能解决你的问题,请参考以下文章

为啥这段代码不抛出 NullPointerException?

如何调试库代码中发生的 NullPointerException?

Android proguard 混淆代码实际上不应该导致 NullPointerException

GridWorld代码中间的NullPointerException [关闭]

handleStopActivity 中的 NullPointerException -- 在堆栈跟踪中没有引用我的代码

handleStopActivity 中的 NullPointerException -- 在堆栈跟踪中没有引用我的代码