【问题标题】:How to change spinner text size?如何更改微调器文本大小?
【发布时间】:2011-07-13 22:57:40
【问题描述】:

我想了解微调器以及如何更改微调器文本大小和微调器文本颜色。

【问题讨论】:

    标签: android android-spinner text-size


    【解决方案1】:

    hello-spinner 教程非常有用。

    http://developer.android.com/guide/tutorials/views/hello-spinner.html

    将新的 XML 文件添加到您的布局文件夹中。

    安卓:textColor="#FF8B1500" android:gravity="center"/>

    将适配器资源更改为您的新布局文件:

    adapter = ArrayAdapter.createFromResource(
                this, R.array.sound, R.layout.spinnerLayout);
    

    `

    【讨论】:

      【解决方案2】:

      在 Android 中,Spinner 只不过是一个组合框或列表框。

      它允许您查看多个项目并允许您从列表中选择一项。

      像这样编辑您的 XML 代码

      <Spinner android:id="@+id/Spinner01"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content" />
      

      您的 Java 类代码应如下所示

      public class SpinnerExample extends Activity { 
         private String array_spinner[];
         @Override
         public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.main);
           array_spinner=new String[5];
           array_spinner[0]="1";
           array_spinner[1]="2";
           array_spinner[2]="3";
           array_spinner[3]="4";
           array_spinner[4]="5";
           Spinner s = (Spinner) findViewById(R.id.Spinner01);
           ArrayAdapter adapter = new ArrayAdapter(this,
           android.R.layout.simple_spinner_item, array_spinner);
           s.setAdapter(adapter);
         }
       }
      

      输出看起来像

      本站提供带有源代码的示例屏幕截图
      http://www.androidpeople.com/android-spinner-example

      一般我们不能通过简单的适配器编辑文本大小或文本颜色,在 firstxml 文件中我们声明我们通过 spinnername.findviewbyid(id) 找到的 spinner 和 firstjava 文件。我们只是通过 xml 文件创建自定义适配器,即首先我们创建secondxml 文件,我们在其中给出了我们的要求,例如 textview、images 等,在 textview 中我们给出了 textcolor 和 textsize 然后我们在 java 中创建 customadapterfile,我们只是通过自定义适配器中的布局充气器充气该 xml 文件,最后我们将该适配器传递给微调器。您的自定义查看微调器已创建。

      自定义视图示例,您可以在其中设置文本大小、文本颜色和图像以及许多内容:-

      在此创建了一个联系人列表,并使用自定义适配器在下面的 xml 文件中进行扩展 联系人适配器文件

      xml 文件:-

      <TextView android:text="Name:" android:id="@+id/tvNameCustomContact"
          android:layout_width="wrap_content" android:layout_height="wrap_content"
          android:layout_marginLeft="10dip" android:textColor="@color/darkcherryred" 
          />
      <TextView android:id="@+id/tvNumberCustomContact" android:layout_width="wrap_content"
          android:layout_height="wrap_content"  
           android:text="Number:" android:textColor="@color/DarkGrey" android:paddingLeft="10dip"
           android:layout_below="@+id/tvNameCustomContact" 
           />
      <TextView android:text="Group:" android:id="@+id/tvGroupCustomContact"
          android:layout_width="wrap_content" android:layout_height="wrap_content" 
           android:textColor="@color/darkcherryred"   android:paddingLeft="10dip"
           android:layout_below="@+id/tvNumberCustomContact"/>
      

      自定义适配器文件:-

      import java.util.ArrayList;
      import android.content.Context;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.BaseAdapter;
      import android.widget.ImageButton;
      import android.widget.TextView;
      
      public class ContactAdapter extends BaseAdapter 
      {
      
      
      private ArrayList<String> name=new ArrayList<String>();
      private ArrayList<String> number=new ArrayList<String>();
      private ArrayList<String> group=new ArrayList<String>();
      
      private LayoutInflater mInflater;
      public ContactAdapter(Context context,  ArrayList<String> name,ArrayList<String> number,ArrayList<String> group1) 
      {
          this.mInflater = LayoutInflater.from(context);
          this.name=name;
          this.number=number;
          this.group=group1;
      }
      
      public int getCount() {
          return this.name.size();
      }
      
      public Object getItem(int position) {
          return position;
      }
      
      public long getItemId(int position) {
          return position;
      }
      
      public View getView(int position, View convertView, ViewGroup parent) 
      {
          final ViewHolder holder;
          if (convertView == null) 
          {
              convertView = mInflater.inflate(R.layout.contactcustomlist, null);
              holder = new ViewHolder();
              holder.Name = (TextView) convertView.findViewById(R.id.tvNameCustomContact);
              holder.Number= (TextView) convertView.findViewById(R.id.tvNumberCustomContact);
              holder.Group= (TextView) convertView.findViewById(R.id.tvGroupCustomContact);
              convertView.setTag(holder);
          } 
          else 
          {
              holder = (ViewHolder) convertView.getTag();
          }
      
      
      
      
      
          holder.Name.setText    ("Name :      "+name.get(position));
          holder.Number.setText("Numbers : "+number.get(position));
          holder.Group.setText   ("Group :      "+group.get(position));
      
      
          return convertView;
      
      }
      class ViewHolder {
          TextView Name;
          TextView Number;
          TextView Group;
      
      }
      

      }

      我们假设您创建了定义 spinner 的 firstxml 文件,最后在 firstjava 文件中您只需在我们传递自定义适配器的地方添加 spinner 的代码:

      ContactAdapter contactadapter = new ContactAdapter(this, NameA, MobileA, group);//NameA,MobileA,Group is a arraylist in which we pass the values from main java file to ContactAdapter java file
      Spinner spinner= (Spinner)findviewbyid(R.id.spinnername);
      spinner.setAdapter(contactadapter);
      

      【讨论】:

      • 谢谢,这是一篇非常好的帖子。但我有一个问题。如何删除下拉菜单中的水平线,因为将背景设置为黑色和文本白色时看起来很难看。当焦点到微调器中的一项时,如何制作不同的背景
      猜你喜欢
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 2019-06-21
      • 1970-01-01
      • 2011-10-18
      相关资源
      最近更新 更多