【发布时间】:2016-07-28 18:32:01
【问题描述】:
请纠正我的错误。我试图在 imageview click 上显示一些点击效果,但它抛出了 nullpointer 异常。这段代码我哪里错了?它在 createAllImage() 抛出空指针异常
片段代码
public class DuaFragment extends Fragment implements View.OnTouchListener {
ImageView fear;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view= inflater.inflate(R.layout.dua_fragment,container,false);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
createAllImage();
}
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
fear.getDrawable().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP);
fear.invalidate();
break;
case MotionEvent.ACTION_UP:
fear.getDrawable().clearColorFilter();
fear.invalidate();
break;
}
return true;
}
void createAllImage() {
fear=(ImageView)getView().findViewById(R.id.fear);
fear.setOnTouchListener(this);
}
}
我的布局文件
<ImageView
android:id="@+id/fear"
style="@style/icon"
android:background="@drawable/fear_96" />
【问题讨论】:
-
可能,fear.getDrawable() 返回 null 或者恐惧为 null.. 分享 stacktrace (logcat) 以获得更多帮助
-
fear.getDrawable() 正在抛出空指针,所以我将其更改为 setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP); .现在它没有显示任何异常但没有点击效果
-
你的 ImageView 有图片吗?
-
是的,它是 9patch 图像
-
好的。分享您的 ImageView 布局...您必须在 android:src 中设置 9Patch 图像(而不是在 android:background 中)。请检查一下
标签: android android-fragments android-imageview