我想知道,如何在按钮上编写多行文字
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:background="@drawable/layout_border"
android:text="Hours Mon - sat 5pm" />
我是这样的: -
但需要这种按钮: -
编辑:: -
现在,通过使用@Sino K D:
给出的答案,我得到了类似的东西
但仍在寻求帮助,
将drawable添加到左侧后,得到: -
答案 0 :(得分:22)
使用
(新行)
例如: -
android:text="Hi Hello"
OR
1)在../ res / values / strings.xml中定义:
<string name="multilines">Line1Line1\nLine2Line2</string>
2)在布局文件中引用它:
<Button
android:id="@+id/btn_multilines"
android:text="@string/multilines"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
</Button>
答案 1 :(得分:2)
为什么不通过编码来尝试这个
String styledText = "<small> <font color='#000000'>"
+ "Mon-Sat 5:00 pm" + "</font> </small>"+ "<br/>"
+ "<small> <font color='#000000'>" + "Closed on Sunday"
+ "</font> </small>";
sendrequest.setText((Html
.fromHtml(styledText)));
答案 2 :(得分:1)
你可以实现这一目标。
1-&gt;在布局中创建一个按钮
<Button
android:id="@+id/buton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Mon - Sat 5 pm\nClosed on sunday"
/>
2→在您的项目中添加此类。
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;
public class TextDrawable extends Drawable {
private final String text;
private final Paint paint;
public TextDrawable(String text) {
this.text = text;
this.paint = new Paint();
paint.setColor(Color.WHITE);
paint.setTextSize(20f);
paint.setAntiAlias(true);
paint.setFakeBoldText(true);
paint.setShadowLayer(6f, 0, 0, Color.BLACK);
paint.setStyle(Paint.Style.FILL);
paint.setTextAlign(Paint.Align.LEFT);
}
@Override
public void draw(Canvas canvas) {
canvas.drawText(text, 0, 0, paint);
}
@Override
public void setAlpha(int alpha) {
paint.setAlpha(alpha);
}
@Override
public void setColorFilter(ColorFilter cf) {
paint.setColorFilter(cf);
}
@Override
public int getOpacity() {
return PixelFormat.TRANSLUCENT;
}
}
3→在活动类中添加这些行
Button button=(Button)findViewById(R.id.button);
button.setCompoundDrawables( new TextDrawable("Hour"), null, null, null);
答案 3 :(得分:0)
使用
(换行)
android:text="Hours Mon - sat 5pm"
答案 4 :(得分:0)
对于Android版面,可以在元素中添加多行文字。
在res / values / strings.xml中创建一个字符为endOfLine“\ n”的新变量。
例如:
<string name="multiplelines">Line1 \n Line2</string>
在布局文件中引用它。例如,
<Button
android:id="@+id/start"
android:text="@string/multiplelines"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
</Button>
答案 5 :(得分:0)
你可以使用LinearLayout
而不是按钮来实现类似的效果:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/layout_border"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="match_content"
android:textColor="@color/grey" // you'll have to define this yourself
android:text="Hours"
android:gravity="center_vertical" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Mon - Sat 5:00pm Closed on Sundays"
android:gravity="center_vertical />
</LinearLayout>
这可能不太完美,但这是一个开始
答案 6 :(得分:0)
可以在 strings.xml 中使用的解决方案,CDATA中的分隔符是 \ n
<string name="switch_on_bluetooth"><![CDATA[Allumer\nBluetooth]]></string>
答案 7 :(得分:0)
添加
<Button
android:layout_gravity="center_vertical"
/>
在您的XML文件中,并使用“ \ n ”在Java文件中换行
btn3.setText("Selected Orders\nOnly");