如何在Android中使字符串的宽度相同?
有3个字符串,每个字符串的长度相同,这些字符串中有空格。在ListView控件中填充3个字符串后,我发现3行的宽度不一样 如何在Android中使字符串的宽度相同?谢谢 顺便说一句,我使用Android Studio。最小API为9如何在Android中使字符串的宽度相同?,android,android-studio,Android,Android Studio,有3个字符串,每个字符串的长度相同,这些字符串中有空格。在ListView控件中填充3个字符串后,我发现3行的宽度不一样 如何在Android中使字符串的宽度相同?谢谢 顺便说一句,我使用Android Studio。最小API为9 string1= "a b" string2= "aa b" string3= "aaa b" ListView lv=(ListView)findViewById(R.id.listView); String[] COUNTRIES=ne
string1= "a b"
string2= "aa b"
string3= "aaa b"
ListView lv=(ListView)findViewById(R.id.listView);
String[] COUNTRIES=new String[]{"a b","aa b","aaa b"};
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, COUNTRIES));
string1=“a b”
string2=“aa b”
string3=“aaa b”
ListView lv=(ListView)findViewById(R.id.ListView);
字符串[]国家=新字符串[]{“AB”、“aa b”、“aaa b”};
lv.setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,COUNTRIES));
除非您使用的是单间距字体,否则实现您想要的目标将非常困难。非等距字体具有不同宽度的字符
但是,使用布局安排可以解决此问题。下面是一个例子:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="300dp"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.7">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="A"
android:id="@+id/textView2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="AAA"
android:id="@+id/textView4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="AAAAA"
android:id="@+id/textView5"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.3">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="B"
android:id="@+id/textView3"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="BBB"
android:id="@+id/textView6"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="BBBB"
android:id="@+id/textView7"/>
</LinearLayout>
</LinearLayout>
上述代码将生成如下布局:
以编程方式将视图添加到我在一个程序中完成的线性布局中 xml(线性布局为行的数量)
对于(int i=0;i
试着理解代码并根据您的需要实施它如果这对您来说不是一个大问题,您能在行布局中使用额外的视图来实现您正在做的事情吗。。与动态创建额外逻辑相比,事情会容易得多。可能添加一个线性布局作为父视图,然后将方向设置为水平,然后将两个视图添加到其中。谢谢!我可以选择什么样的单间距字体来适合所有手机,适合API 9及以上版本?好的,你可以使用任何字体,只要你将它们与你的应用程序一起发布(在APK内)。Android本身也内置了单间距字体。您可以使用它,而不必担心可用性。作为旁注,单间距字体不适合“正常”的使用情况。因为它的固定宽度对用户的眼睛来说可能不自然。谢谢!致里德里奥:请你看看我会的。但是你能接受我的回答吗?这似乎对你有帮助。当然,如果你感觉到了另一种情况,你可以忽略这一点。:)
<LinearLayout
android:id="@+id/ansrow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:horizontalSpacing="4dp"
android:numColumns="10"
android:orientation="horizontal"
android:paddingEnd="10dp"
android:paddingStart="10dp"
android:verticalSpacing="10dp" >
</LinearLayout>
for (int i = 0; i < list2.size(); i++) {
text = new TextView(MainActivity.this);
text.setBackgroundColor(Color.WHITE);
text.setGravity(Gravity.CENTER);
text.setText("" + list2.get(i).toString().toLowerCase());
text.setPadding(10, 10, 10, 10);
text.setTextSize(35f);
text.setTypeface(rail);
text.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
5f));
text.setId(101 + i);
if (i < 10) {
ansrow2.addView(text);
} else {
ansrow1.addView(text);
}
text.setOnClickListener(this);
}