我有一个GLSurfaceView,当用户点击一个按钮时,它会绘制一些默认颜色的三角形。 然后,当用户从我的inflater菜单中选择一种颜色时,它将重新绘制具有该特定颜色的三角形。 它以奇怪的方式工作,首先它绘制三角形,当我选择不同的颜色时,它不会用不同的颜色重绘。但是,当我关闭手机并重新打开时,颜色会发生变化。
这是我的代码:
//------------------------------------------------------------------------------------------------
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.issm_menu,menu);
return true;
}
//------------------------------------------------------------------------------------------------
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_about:
Toast.makeText(ISSM.this, "ISSM Application", Toast.LENGTH_SHORT).show();
return true;
case R.id.cl_autumn:
colorMap.setAutumn();
drawFigure();
return true;
case R.id.cl_bone:
colorMap.setBone();
drawFigure();
return true;
default:
return true;
}
public void onClick(View view)
{
this.fillBuffer();
drawFigure();
}
//----------------------------------------------------------------------------------
public void drawFigure()
{
mGLView = new MyGLSurfaceView(this, buff, size, colorMap);;
frame.addView(mGLView);
}
我希望一旦我点击菜单中的颜色,颜色就会改变,我不想关闭并打开(顺便说一句,不是完全断电,就像睡觉和醒来一样)< / p>
答案 0 :(得分:0)
解决了它,我需要首先调用frame.removeView()然后添加另一个视图。