带有图像选择的Android Custom Spinner

时间:2014-05-28 19:22:35

标签: java android user-interface spinner

我正在使用自定义微调器,我已经了解如何使用ArrayAdapter来自定义自定义弹出窗口的布局。

我遇到的问题是,我不想在我的UI上显示默认微调器,而是想显示图像,然后此图像将根据已选择的项目更改,图像看起来像什么如下所示:

enter image description here

除此之外,有没有办法可以使用wrap_content,但是根据这个图像大小而不是默认的微调器大小来包装它?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你想要一个布局用于Spinner正确(layoutA)中显示的值,而另一个布局(layoutB)用于弹出窗口中的微调器选项视图?

如果是这样,那么它非常简单:在适配器的构造函数中,传递layoutA。然后使用layoutB调用setDropDownViewResource()

或者,如果您有自定义适配器类,则可以通过分别覆盖getView()getDropDownView()来获得相同的结果。

将微调器的高度设置为WRAP_CONTENT应该适用于这种情况(尽管我还没有测试过那个特定位)。

答案 1 :(得分:0)

使用switch caseif else它很容易实现,两者都可以正常工作。我已经使用if else条件通过将图像源附加到我声明的每个参数来实现这个。

以下是代码示例。

 spinner = (Spinner) findViewById(R.id.spinner1);
    imageview = (ImageView) findViewById(R.id.imageView1);


    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        //spinner.
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                                   int arg2, long arg3) {
            if(arg2==0)
            {

                imageview.setImageResource(R.drawable.apple);
            }
            else if(arg2==1)
            {
                imageview.setImageResource(R.drawable.microsoft);
            }
            else
            {
                imageview.setImageResource(R.drawable.google);
            }

来源 - http://kamleshnishad.com/android-studio-spinner-example-onclick-change-image/