为什么这段代码不能工作?它总是强制结束,我想切换视图,但这并没有发生。它要么强制杀死,要么显示黑屏。我想切换四个视图。ar如何创建动画?
public class DrawDemoActivity extends Activity {
DemoView demoview ;
FinalView finalview;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean first=true;
boolean sec=false;
demoview = new DemoView(this);
finalview = new FinalView(this);
// for contnivew switching the view
for(int i=0;i>0;i++)
{
if (first==true||sec==false)
{
setContentView(finalview);
first=false;
sec=true;
}else if(first==false||sec==true)
{
setContentView(demoview);
first=true;
sec=true;
}else if(first==true||sec==true)
{
setContentView(demoview);
first=false;
sec=false;
}else
{
setContentView(demoview);
first=false;
sec=false;
}
}
}
//first view
private class DemoView extends View{
public DemoView(Context context){
super(context);
}
@Override protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// custom drawing code here
// remember: y increases from top to bottom
// x increases from left to right
int x = 150;
int y = 200;
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
// make the entire canvas white
paint.setColor(Color.CYAN);
canvas.drawPaint(paint);
// another way to do this is to use:
// canvas.drawColor(Color.WHITE);
// draw blue circle with antialiasing turned on
paint.setAntiAlias(true);
paint.setColor(Color.RED);
canvas.drawCircle(x-24, y+30, 11, paint);
paint.setColor(Color.WHITE);
canvas.drawLine(0, 300 , 320, 300, paint);
}
}
//second view
private class FinalView extends View {
public FinalView(Context context){
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// custom drawing code here
// remember: y increases from top to bottom
// x increases from left to right
int x = 150;
int y = 200;
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
// make the entire canvas white
paint.setColor(Color.CYAN);
canvas.drawPaint(paint);
// another way to do this is to use:
// canvas.drawColor(Color.WHITE);
// draw blue circle with antialiasing turned on
paint.setAntiAlias(true);
paint.setColor(Color.BLACK);
canvas.drawCircle(x, y, 11, paint);
canvas.drawCircle(x-11, y+19, 11, paint);
canvas.drawCircle(x, y+38, 11, paint);
canvas.drawCircle(x+20, y+30, 11, paint);
canvas.drawCircle(x-11, y-19, 11, paint);
paint.setColor(Color.RED);
canvas.drawCircle(x+41, y+30, 11, paint);
canvas.drawCircle(x+20, y+9, 11, paint);
canvas.drawCircle(x-23, y-37, 11, paint);
canvas.drawLine(0, 300 , 320, 300, paint);
}
}
}发布于 2012-03-17 19:25:34
您的setContentView()似乎不会被调用,因为you for循环从不迭代
for(int i=0;i>0;i++)发布于 2012-03-17 19:34:45
问题似乎出在onCreate方法中。由于for循环,因此无法访问setContentView方法,其中i永远不会大于零。int i=0;i>0;i++
此外,如上所述,如果您想切换视图,请使用ViewFlipper。您可以找到一个很好的示例here
发布于 2012-03-19 14:48:17
使用view flipper,你可以在调用next viewFlipper之前为它们的输入和输出设置动画。下面是一些可能有用的东西。
viewFlipper.setInAnimation(pushUpIn);
viewFlipper.setOutAnimation(pushUpOut);
viewFlipper.showNext();https://stackoverflow.com/questions/9749180
复制相似问题