我一直在努力在Android上制作自己的自定义ImageView类。我已经阅读了有关布局,片段,活动和ImageView的文档。
我已经看过关于如何以编程方式创建ImageView的Stack帖子,但我遇到了一个障碍,我似乎无法找到解决方案(阅读上面的错误搜索上面的错误不适用于我的问题)。
我有一个活动,在该活动中我有一个片段。在片段中我创建了一个ImageView(它叫做iImage,但它只是一个扩展的ImageView类)。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
// Inflate the layout for this fragment
iImage image = new iImage(getActivity());
image.setImageResource(R.drawable.name_splash);
LinearLayout.LayoutParams par = new LinearLayout.LayoutParams(1500,1100);
image.setLayoutParams(par);
container.addView(image);
View rootView = inflater.inflate(R.layout.fragment_edit_photo, container, false);
return rootView;
}
然而,当我运行应用程序时,它会加载,并且它运行正常,但我收到此错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{co.name.app/co.name.app.CameraEditorActivity}: java.lang.NullPointerException: Layout parameters cannot be null
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
...
Caused by: java.lang.NullPointerException: Layout parameters cannot be null
at android.view.View.setLayoutParams(View.java:11470)
at co.name.app.EditPhotoFragment.onCreateView(EditPhotoFragment.java:89)
你能告诉我们潜在的问题是什么吗?
答案 0 :(得分:1)
我无法重现您的错误,您的代码适用于我的测试用例。
布局参数错误肯定是指图像?检查R.layout.fragment_edit_photo中的所有组件是否都有布局数据。
如果是这样,潜在的问题可能是片段的父容器布局可能不是LinearLayout。另外,请检查您的SDK是否是最新的。