【问题标题】:Android : alternative to setVisibility to Display images onscreenAndroid : 替代 setVisibility 在屏幕上显示图像
【发布时间】:2012-03-18 12:41:40
【问题描述】:

首先,我是 Android 的新手,并且是自学的,所以我不要求你为我编写代码。只需给我一些术语、主题或要研究的主题,我就会阅读书籍并弄清楚。

我正在制作一个应用程序,用户可以通过按下按钮或选择图像来设置屏幕上显示的内容。我知道如何做到这一点的唯一方法是让 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 布局。我将所有这些图像视图堆叠在一起,很难看到它们的外观,因为它只是一团糟。

感谢任何帮助

【问题讨论】:

  • 感谢您的帮助,我一直在测试 viewFlipper 和使用数组,并认为这两种方法在我的应用程序中的运行都会比我的原始代码好得多。

标签: android android-layout visibility


【解决方案1】:

http://developer.android.com/reference/android/widget/ViewFlipper.html 会让你更容易管理,没有这种不守规矩的代码。

【讨论】:

    【解决方案2】:

    如果您尝试在多个视图之间切换,按照建议使用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]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 2021-09-08
      • 2012-09-16
      相关资源
      最近更新 更多