ユーザーがアラートダイアログでアイテムのリストを選択できるようにするAndroidプロジェクトに取り組んでいます(下の画像を参照)。
私はandroid.widget.spinnerを使用しています。しかし、チェックボックスはよく見えません。
この種はデフォルトであるため、チェックボックスをパーソナライズしようとしています。
それで、それらを自分のチェックボックスに置き換えることは可能ですか?
ユーザーがアラートダイアログでアイテムのリストを選択できるようにするAndroidプロジェクトに取り組んでいます(下の画像を参照)。
私はandroid.widget.spinnerを使用しています。しかし、チェックボックスはよく見えません。
この種はデフォルトであるため、チェックボックスをパーソナライズしようとしています。
それで、それらを自分のチェックボックスに置き換えることは可能ですか?
これが役立つかどうかはわかりませんが、カスタムの背景とフォント サイズを設定する必要があるプロジェクトの 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" />
これを試してみてください。それがあなたを助けることを願っています。
レイアウト ファイルでこの方法を試してください。
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>
あなたがしなければならないことは、カスタムスピナーを作成することです...。
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;
}
}
自分でドローアブルを作成します。
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>
次に、これを各行のレイアウトとして設定し、チェックボックスの選択を自分で処理します...それはカスタマイズの代償です.
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
場合に表示するイメージ、 はオプションがチェックされている場合に背景を表示するイメージです。checkbox
selected_option
checkbox