gpt4 book ai didi

android - 以编程方式将文本大小设置为android中微调器中的文本

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:05 25 4
gpt4 key购买 nike

您好,我想以编程方式(动态地)在微调器中设置文本的样式和大小。我没有为此在我的应用程序中使用任何资源。所以给我一些建议

最佳答案

我认为您不能在不覆盖默认布局资源行为的情况下动态创建它。使用资源创建它:

创建一个包含 TextView 的布局文件,并为其定义大小、颜色和其他样式。并创建一个 ArrayAdapter 对象,并在您的适配器中提供该布局文件以及 TextViewID

您的布局文件将如下所示: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>

现在您可以像这样在您的代码中使用它:

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);

您还可以创建自定义 ArrayAdapter 并重写方法

getView()getDropDownView()

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

更新:

我通过覆盖 android 的默认资源动态更改了微调项的文本大小和颜色。我使用的 fragment 如下:

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;
}
}

关于android - 以编程方式将文本大小设置为android中微调器中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com