如何解决如何在空对象引用错误
我正在使用此库 https://github.com/jgabrielfreitas/BlurImageView 来模糊图像,并且在正常活动中一切正常,最近我尝试在自定义 GridView 中使用此库并出现此错误
android.graphics.Bitmap android.graphics.drawable.BitmapDrawable.getBitmap()' on a null object reference
这是我的自定义 GridView 适配器代码,用于在 Glide 的帮助下模糊从 url 获取的图像:
image.setVisibility(View.INVISIBLE);
Glide.with(getApplicationContext()).load(Uri.parse(lmap.get((int)_position).get("pic").toString())).into(image);
t = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
image.setVisibility(View.VISIBLE);
image.setBlur(15);
}
});
}
};
_timer.schedule(t,(int)(2000));
}
注意: image.setBlur(15);
是库中的一个函数。
这是我的自定义 GridView 布局 xml:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:id="@+id/cardview1"
android:layout_width="200dp"
android:layout_height="250dp"
android:clickable="true"
android:focusable="true"
app:cardCornerRadius="10dp"
app:cardElevation="2dp">
<RelativeLayout
android:id="@+id/linear1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.jgabrielfreitas.core.BlurImageView
android:id="@+id/image"
android:focusable="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
app:radius="24"/>
<LinearLayout
android:id="@+id/linear2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical"
android:layout_alignBottom="@+id/image">
<LinearLayout
android:id="@+id/linear4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/name_age"
android:focusable="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="Peter,43"
android:textSize="16sp"
android:textColor="#FFFFFF"
android:translationY="10.0dp"
android:shadowColor="#000000"
android:shadowDx="1.5"
android:shadowDy="1.3"
android:shadowRadius="1.6"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linear6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:translationY="-5.0dp">
<LinearLayout
android:id="@+id/linear3"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_marginLeft="10dp"
android:padding="8dp"
android:background="#C5E1A5"
android:orientation="vertical"/>
<TextView
android:id="@+id/time"
android:focusable="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="Last seen recently"
android:textSize="14sp"
android:textColor="#FFFFFF"
android:shadowColor="#000000"
android:shadowDx="1.5"
android:shadowDy="1.3"
android:shadowRadius="1.6"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
注意:自从我从网址获取图像后,我已删除 app:src="drawable/img"
解决方法
在使用不同的方法解决错误几乎一整天之后,我终于找到了一种方法,它很简单,就像 ABC 我只需要在 image.setBlur(int) 上使用 try catch 语句,它就像魔术一样工作.我的 GridView 适配器的一个片段现在看起来像这样:
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
image.setBlur(15);
}catch(Exception e){
}
}
});
}
};
_timer.schedule(t,(int)(2000)); ```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。