我正在开发一个 Android 项目,它允许用户在警报对话框中选择项目列表(见下图)。
我正在使用 android.widget.spinner。但是复选框不太明显。
我正在尝试个性化复选框,因为默认情况下这种类型。
那么是否可以用我自己的复选框替换它们?
我正在开发一个 Android 项目,它允许用户在警报对话框中选择项目列表(见下图)。
我正在使用 android.widget.spinner。但是复选框不太明显。
我正在尝试个性化复选框,因为默认情况下这种类型。
那么是否可以用我自己的复选框替换它们?
在您的布局文件中尝试这种方式。
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>
我不确定这会对您有所帮助,但我在我的一个项目中完成了自定义微调器,我必须设置自定义背景和字体大小。我有如下代码。
你可以试试看。内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" />
试试这个。希望它会帮助你。
你想改变背景的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"/>
whereunselected_option
是在checkbox
未选中时显示selected_option
的图像,是在选中选项时显示checkbox
背景的图像。
您要做的是创建一个自定义微调器....
您必须制作一个包含 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/
然后您必须创建四个可绘制对象,这些将是 png 文件,您将希望为每种尺寸的屏幕创建一个,即/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>
然后将其设置为每一行的布局并自己处理复选框选择......这就是定制的代价。