Android Spinner图像处理完成

时间:2014-04-17 13:19:19

标签: android xml android-layout relativelayout android-xml

我有一个客户微调器里面有图像。现在除了两件小事之外,一切都按照预期的方式运作:

  1. 除了细小的细线外,Spinner没有显示。
  2. Spinner Items灰色边框稍微延伸。
  3. 我在下面添加了以下问题的屏幕截图:

    enter image description here enter image description here

    我想要的是:

    1. 我想要一个空的CheckBox图像,而不是上面的细线。
    2. 在Spinner项目的图像右侧是灰色部分,应该将其删除。
    3. 我知道这些问题都存在于xml文件中,但我对Android有点新见,而且我总是对使用layout_widht / height时有点困惑。

      以下是xml文件:

      activity_main.xml中:

      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:paddingBottom="@dimen/activity_vertical_margin"
          android:paddingLeft="@dimen/activity_horizontal_margin"
          android:paddingRight="@dimen/activity_horizontal_margin"
          android:paddingTop="@dimen/activity_vertical_margin"
          android:orientation="vertical"
          tools:context="com.example.testproject.MainActivity$PlaceholderFragment" >
      
          <Spinner 
              android:id="@+id/spCheckbox"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_marginBottom="15dp"
              android:drawSelectorOnTop="true" />
      
          <ImageButton
                  android:id="@+id/ibtnCheckbox"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginBottom="15dp"
                  android:contentDescription="@string/checkbox_content_description"
                  android:src="@drawable/checkbox_unchecked"
                  android:background="@drawable/transparent_background" />
      
      </LinearLayout>
      

      spinner_item.xml:

      <?xml version="1.0" encoding="utf-8"?>
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content">
      
          <ImageView
              android:id="@+id/cbImage"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content"
              android:background="@drawable/transparent_button_background" />
      
      </RelativeLayout>
      

      (transparent_background.xml:)

      <?xml version="1.0" encoding="utf-8"?>
      <selector xmlns:android="http://schemas.android.com/apk/res/android">
          <item android:state_selected="true" android:drawable="@android:color/transparent" />
          <item android:state_pressed="true" android:drawable="@android:color/transparent" />
          <item android:drawable="@android:color/transparent" />
      </selector>
      

      那么..我需要更改哪个layout_width / layout_height才能获得正确的结果?

      提前感谢您的回复。

      编辑:我做了一些研究,我开始用match_parent替换所有fill_parent(因为它是相同的,并且在API lvl之后弃用了fill_parent.8)。对于我的问题,似乎我的activity_main布局应该是match_parent为全屏,Spinner,Spinner Item的布局和Spinner Item的ImageView都应该是wrap_content。

      但是,如果我改变它,两个问题仍然保持不变。如果有人知道如何显示所选的微调框图像以及如何删除微调项目的灰色间距,请告诉我。

1 个答案:

答案 0 :(得分:0)

细线而不是Spinner的问题已经解决了。事实证明,当我在互联网上的某个地方跟踪教程时,他们添加了一行:

spinner.getLayoutParams().width = 3;

显然,删除此行可修复第一个问题..&gt;。&gt; (不知道为什么他们首先添加了这个也是诚实的,但现在它已经消失,我看到我的旋转器正常)

现在我只需要解决灰色边框的第二个问题,但我确定我最终会找到解决方案..

编辑:由于除了灰色填充之外我想删除微调器右下箭头,我决定完全删除微调器并创建一个带有垂直方向的LineairLayout的弹出窗口。

有关代码的参考,我将其发布在another question of mine