Android 使用位图设置ImageView时出现空指针异常
这是我的类中的onCreate(…)方法:Android 使用位图设置ImageView时出现空指针异常,android,surfaceview,Android,Surfaceview,这是我的类中的onCreate(…)方法: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutPar
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.editor);
setRequestedOrientation(1);
v = new SView(this);
v.setOnTouchListener(this);
//v.setZOrderOnTop(true);
//v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
setContentView(v);
ImageView back = (ImageView) findViewById(R.id.IVEditor);
bm = loadPhoto("photo", bm);
if(bm != null)
{
//This Section is giving me the error
back.setImageBitmap(bm);
}
}
这是错误,当我双击它时,它会将我带到上面的单独部分。但我不知道为什么:
11-09 07:42:42.624: E/AndroidRuntime(32472): Caused by: java.lang.NullPointerException
11-09 07:42:42.624: E/AndroidRuntime(32472): at com.synlight_development.tattoo_it.Editor.onCreate(Editor.java:64)
11-09 07:42:42.624: E/AndroidRuntime(32472): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
11-09 07:42:42.624: E/AndroidRuntime(32472): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1785)
11-09 07:42:42.624: E/AndroidRuntime(32472): ... 11 more
R.id.IVEditor
必须在使用setContentView
设置的布局中声明
可能R.id.IVEditor
在R.layout.editor
中声明。Switching
ImageView back = (ImageView) findViewById(R.id.IVEditor);
bm = loadPhoto("photo", bm);
if(bm != null) {
back.setImageBitmap(bm);
}
与
应该会成功。但这一切都取决于
R.id.IVEditor
的声明位置 您可以将编辑器布局文件内容粘贴到这里吗。由于editor.xml布局文件的元素必须是ImageView,其id定义为android:id=“@+id/IVEditor”
。
然后,只有您才能获得准确的ImageView对象。据我所知,您似乎正在用
SView
的新实例替换R.id.editor
布局。我已经有一段时间没有接触Android了,所以不知道SView
做了什么。但是,我首先会想,它将用一个自定义视图/布局/whater替换以前的setContentView(R.id.Editor)
,该视图/布局/whater不包含id为R.layout.IVEditor的布局元素
所以,是的,你试图在当前布局中不存在的内容中添加图像。(setContentView(v)
正在删除R.id.editor
布局,并放入不包含R.layout.IVEditor
的Sview(),我已经完成了这项工作,这很好。我现在遇到的问题是,我的布局中有一个水平滚动视图,现在有办法在屏幕上显示吗?
ImageView back = (ImageView) findViewById(R.id.IVEditor);
bm = loadPhoto("photo", bm);
if(bm != null) {
back.setImageBitmap(bm);
}
v = new SView(this);
v.setOnTouchListener(this);
//v.setZOrderOnTop(true);
//v.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
setContentView(v);