以编程方式在android中以spinner方式将TextSize设置为文本

Pin*_*nki 5 android spinner

嗨,我想以编程方式(动态)设置微调器中文本的样式和大小.我不会在我的应用程序中使用任何资源.所以给我一些建议

Vik*_*dar 21

我不认为您可以动态创建它而不会覆盖默认布局资源的行为.要使用资源创建它:

创建一个包含a的布局文件TextView,并为其定义大小,颜色和其他样式.并创建一个ArrayAdapter对象,并且提供布局文件在您的适配器非常久远了IDTextView.

您的布局文件将如下所示:spinner_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
<TextView
 android:id="@+id/textview"
  android:layout_height="30dip"
 android:layout_width="wrap_content"
 android:textSize="20dip"
 android:textColor="#ccddaa"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

现在您可以在代码中使用它,如下所示:

Spinner mySpinner = (Spinner)findViewById(R.id.spinner);      
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,R.id.textview,Your_Array_of_items);      
mySpinner.setAdapter(adapter); 
Run Code Online (Sandbox Code Playgroud)

您还可以创建自定义ArrayAdapter并覆盖方法

getView() 要么 getDropDownView()

在这种方法中,您可以为自己设置自定义颜色,大小和字体 TextView

更新:

我通过覆盖android的默认资源动态地更改了微调器项的文本大小和颜色.我使用的代码段如下:

public class CustomSpinner extends Activity {
String[] numbers = { "One", "Two", "Three", "Four", "Five" };

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    SpinnerAdapter adapter = new SpinnerAdapter(this,
            android.R.layout.simple_spinner_item, numbers);
    spinner.setAdapter(adapter);
}

private class SpinnerAdapter extends ArrayAdapter<String> {
    Context context;
    String[] items = new String[] {};

    public SpinnerAdapter(final Context context,
            final int textViewResourceId, final String[] objects) {
        super(context, textViewResourceId, objects);
        this.items = objects;
        this.context = context;
    }

    @Override
    public View getDropDownView(int position, View convertView,
            ViewGroup parent) {

        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(context);
            convertView = inflater.inflate(
                    android.R.layout.simple_spinner_item, parent, false);
        }

        TextView tv = (TextView) convertView
                .findViewById(android.R.id.text1);
        tv.setText(items[position]);
        tv.setTextColor(Color.BLUE);
        tv.setTextSize(30);
        return convertView;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(context);
            convertView = inflater.inflate(
                    android.R.layout.simple_spinner_item, parent, false);
        }

        // android.R.id.text1 is default text view in resource of the android.
        // android.R.layout.simple_spinner_item is default layout in resources of android.

        TextView tv = (TextView) convertView
                .findViewById(android.R.id.text1);
        tv.setText(items[position]);
        tv.setTextColor(Color.BLUE);
        tv.setTextSize(30);
        return convertView;
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 7

ArrayAdapter<String> ArrayAdapter_Price = new ArrayAdapter<String>(
      getActivity(), R.layout.item_list_drop_down, dollers) {

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

            View v = super.getView(position, convertView, parent);
            TextView tv = ((TextView) v);
            tv.setTextColor(getResources().getColor(R.color.login_text_color));
            tv.setTypeface(tv.getTypeface(), Typeface.BOLD);
            tv.setSingleLine();
            tv.setEllipsize(TextUtils.TruncateAt.END);
            tv.setTextSize(18);
            return v;
        }
    };
Run Code Online (Sandbox Code Playgroud)


Pin*_*nki 1

与自定义列表视图相同,我们可以将值设置为微调器。在自定义视图类中,我们可以将属性设置为文本视图