5

ユーザーがアラートダイアログでアイテムのリストを選択できるようにするAndroidプロジェクトに取り組んでいます(下の画像を参照)。

ここに画像の説明を入力

私はandroid.widget.spinnerを使用しています。しかし、チェックボックスはよく見えません。

この種はデフォルトであるため、チェックボックスをパーソナライズしようとしています。

それで、それらを自分のチェックボックスに置き換えることは可能ですか?

4

5 に答える 5

1

これが役立つかどうかはわかりませんが、カスタムの背景とフォント サイズを設定する必要があるプロジェクトの 1 つで、カスタム スピナーを作成しました。以下のようなコードがあります。

あなたはそれを試すことができます。内部string.xml書き込み:

   <string-array name="spinner_array_environtment">
        <item>Test</item>
        <item>Production</item>
    </string-array>

MainActivity.java 内:

public class MainActivity extends Activity {
Spinner spinner_environment;

        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                spinner_environment = (Spinner) findViewById(R.id.spinnerview);
adapter =ArrayAdapter.createFromResource(this,              R.array.spinner_array_environtment,R.layout.spinner_phone);
            adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
            spinner_environment.setAdapter(adapter);
}

spinner_phone.xml 内:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/spinnerTarget"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="13dp"
    android:textColor="#4C4646" />

これを試してみてください。それがあなたを助けることを願っています。

于 2013-01-04T09:30:42.563 に答える
1

レイアウト ファイルでこの方法を試してください。

main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/border" <--- android built-in style. You can define your own whichever you like. Check for it.
android:orientation="horizontal" >
<CheckBox
    android:id="@+id/check"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="2dp" />
<TextView
    android:id="@+id/Textname"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="7dp"
    android:textColor="#FAFAFA"
    android:textSize="14dp"
    android:textStyle="bold" />
</LinearLayout>
于 2013-01-04T07:30:25.893 に答える
0

あなたがしなければならないことは、カスタムスピナーを作成することです...。

textviewとチェックボックスを含むxmlファイルを作成する必要があります(必要なサイズに応じて)

その後、新しいxmlをスピナーに拡張する必要があります。

カスタムビューを膨らませるコード:これは単なる例です

public View getCustomView(int position, View convertView, ViewGroup parent) {

            LayoutInflater inflater=getLayoutInflater();
            View row=inflater.inflate(R.layout.row, parent, false);
            TextView label=(TextView)row.findViewById(R.id.company);
            label.setText(strings[position]);

            TextView sub=(TextView)row.findViewById(R.id.sub);
            sub.setText(subs[position]);

            ImageView icon=(ImageView)row.findViewById(R.id.image);
            icon.setImageResource(arr_images[position]);

            return row;
            }
        }
于 2012-12-21T10:30:02.730 に答える
0

自分でドローアブルを作成します。

my_checkbox.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/my_checkbox_pressed" android:state_selected="true"/>
    <item android:drawable="@drawable/my_checkbox_focused" android:state_focused="true"/>
    <item android:drawable="@drawable/my_checkbox_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/my_checkbox_default"/> <!-- pressed -->

</selector>

これは入ります/drawable/

次に、4 つのドローアブルを作成する必要があります。これらは png ファイルになり、画面のサイズごとに 1 つ作成する必要があります/drawable-mdpi

Android ソースからこれらを取得して、簡単に変更することができます。(例として、http://androiddrawableexplorer.appspot.com/を見て、チェックボックスを検索してください)

次に、これを行項目レイアウトのチェックボックスとして使用します

<CheckBox
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:button="@drawable/my_checkbox"
/>

simple_spinner_item は次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@android:id/text1"
        style="?android:attr/spinnerItemStyle"
   android:singleLine="true"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:ellipsize="marquee" />

次の名前の独自のレイアウト ファイルを作成するだけです。

my_simple_spinner item.xml に入れてdrawable、カスタム チェックボックスを追加します。

<LinearLayout />
  <TextView />
  <CheckBox android:button="@drawable/my_checkbox" />
</LinearLayout>

次に、これを各行のレイアウトとして設定し、チェックボックスの選択を自分で処理します...それはカスタマイズの代償です.

于 2012-12-28T16:36:34.677 に答える
0

checkbox右の背景を変更しますか?次に、以下のようにします。

 checkBox.setButtonDrawable(<YourClass>.getResources().getDrawable( R.drawable.checkradio));   // where check radio is an xml file as shown below:

 <?xml version="1.0" encoding="utf-8"?>
    <item android:drawable="@drawable/unselected_option" android:state_checked="false"/>
    <item android:drawable="@drawable/selected_option" android:state_checked="true"/>

ここで、はチェックされていないunselected_option場合に表示するイメージ、 はオプションがチェックされている場合に背景を表示するイメージです。checkboxselected_optioncheckbox

于 2012-12-21T09:09:43.763 に答える