2012-02-29 72 views
0

首先,我对此非常感兴趣,并且自学自学,因此我不会要求您为我编写代码。只要给我一些条款,主题或学习的主题,我就会把这些书打理出来。Android替代setVisibility在屏幕上显示图像

我正在制作一个应用程序,用户通过按下按钮或选择图像来设置屏幕上显示的内容。我知道如何做到这一点的唯一方法是让onClickListener设置一个变量并使用switch语句显示与所选变量相对应的imageView。

例如:

//on click listeners set variable userPic1 and userPic2 

    switch(userPic1){ 
    case 1: 
     pic11.setVisibility(View.VISIBLE); 
     pic12.setVisibility(View.GONE); 
     pic13.setVisibility(View.GONE); 
     pic14.setVisibility(View.GONE); 
     break; 
    case 2: 
     pic11.setVisibility(View.GONE); 
     pic12.setVisibility(View.VISIBLE); 
     pic13.setVisibility(View.GONE); 
     pic14.setVisibility(View.GONE); 
     break; 
    case 3: 
     pic11.setVisibility(View.GONE); 
     pic12.setVisibility(View.GONE); 
     pic13.setVisibility(View.VISIBLE); 
     pic14.setVisibility(View.GONE); 
     break; 
    case 4: 
     pic11.setVisibility(View.GONE); 
     pic12.setVisibility(View.GONE); 
     pic13.setVisibility(View.GONE); 
     pic14.setVisibility(View.VISIBLE); 
     break; 
    } 


    switch(userPic2){ 
    case 1: 
     pic21.setVisibility(View.VISIBLE); 
     pic22.setVisibility(View.GONE); 
     pic23.setVisibility(View.GONE); 
     pic24.setVisibility(View.GONE); 
     break; 
    case 2: 
     pic21.setVisibility(View.GONE); 
     pic22.setVisibility(View.VISIBLE); 
     pic23.setVisibility(View.GONE); 
     pic24.setVisibility(View.GONE); 
     break; 
    case 3: 
     pic21.setVisibility(View.GONE); 
     pic22.setVisibility(View.GONE); 
     pic23.setVisibility(View.VISIBLE); 
     pic24.setVisibility(View.GONE); 
     break; 
    case 4: 
     pic21.setVisibility(View.GONE); 
     pic22.setVisibility(View.GONE); 
     pic23.setVisibility(View.GONE); 
     pic24.setVisibility(View.VISIBLE); 
     break; 
    }  
} 

我觉得有可能是一个更好的实现代码,但更大的问题是在我的XML布局我有所有这些imageViews彼此堆叠及获得的顶部很难看出他们将如何看待,因为它只是一团糟。

任何帮助表示赞赏

+0

感谢您的帮助,我一直在测试了viewFlipper和使用数组,并认为双方将努力通过了我的应用程序好了很多,然后我的原代码。 – vanamp 2012-03-04 19:10:12

回答

0

按照建议使用ViewFlipper可能会有所帮助,如果您尝试在许多视图之间切换。然而,如果你真的只是改变图像,而不需要改变布局而不是创建很多视图,我只需简单地将图像设置在你的ImageView(我假设picXX是ImageViews)。你可以将你的ID存储在一个或两个数组中,并从那里获取它们。喜欢的东西:

int[] userPics1 = new int[] {R.drawable.pic1, R.drawable.pic2, ... } 

然后:

ImageView pic = (ImageView)findViewById(R.id.pic); 
pic.setImageResource(userPics1[userPic1]); 
相关问题