Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android:如何显示一个内联文本_Android_Textview - Fatal编程技术网

android:如何显示一个内联文本

android:如何显示一个内联文本,android,textview,Android,Textview,有没有任何解决方案可以让2个文本视图如下所示: 事实上,我想在Text1行下面显示Text2行。例如,显示翻译文本1 有什么解决方案吗?您可以使用setLineSpacing在文本视图中设置足够大的间距并重叠它们,然后进行转换,使其中一个显示在另一个行之间 试试这段代码。 您可以设置TextView的lineSpacingExtra属性,并可以使用相对布局来重叠它们。在此之后,您可以相应地设置文本视图的属性 In your xml define text view properties lik

有没有任何解决方案可以让2个文本视图如下所示:

事实上,我想在Text1行下面显示Text2行。例如,显示翻译文本1


有什么解决方案吗?

您可以使用setLineSpacing在文本视图中设置足够大的间距并重叠它们,然后进行转换,使其中一个显示在另一个行之间

试试这段代码。 您可以设置TextView的lineSpacingExtra属性,并可以使用相对布局来重叠它们。在此之后,您可以相应地设置文本视图的属性

In your xml define text view properties like this

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is Text 1. This is Text1. This is Text 1. This is Text1. This is Text 1. This is Text1"
        android:lineSpacingExtra="20dp"
        android:textColor="#5F4C0B"
        android:textSize="24sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="26dp"
        android:lineSpacingExtra="26dp"
        android:text="This is Text 2. This is Text2. This is Text2. This is Text2. This is Text2. This is Text2"
        android:textColor="#B40404"
        android:textSize="20sp" />

</RelativeLayout>
在xml中定义如下文本视图属性
您将得到如下输出


如果您觉得答案有用,请接受它

您可以动态创建此视图

在Main活动中编写以下代码

    public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            RelativeLayout rl = new RelativeLayout(this);
            RelativeLayout.LayoutParams text1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            text1.setMargins(0, 0, 0, 0);
            RelativeLayout.LayoutParams text2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            text2.setMargins(0, 26, 0, 0);

            LinesTextView tv1 = new LinesTextView(this, null);
            tv1.setText("This is Text 1. This is Text 1. This is Text 1. This is Text 1. This is Text 1. This is Text 1.");
            tv1.setLineSpacing(20.0f, 1.0f);
            tv1.setLayoutParams(text1);
            tv1.setTextSize(24.0f);
            tv1.setTextColor(getResources().getColor(android.R.color.darker_gray));

            LinesTextView tv2 = new LinesTextView(this, null);
            tv2.setText("This is Text 2. This is Text 2. This is Text 2. This is Text 2. This is Text 2. This is Text 2.");
            tv2.setLineSpacing(25.0f, 1.0f);
            tv2.setLayoutParams(text2);
            tv2.setTextSize(18.0f);
            tv2.setTextColor(getResources().getColor(android.R.color.black));
            rl.addView(tv1);
            rl.addView(tv2);

            this.setContentView(rl);
        }
    }
public class LinesTextView extends TextView
{
    private Rect mRect;
    private Paint mPaint;

    // we need this constructor for LayoutInflater
    public LinesTextView(Context context, AttributeSet attrs) {
        super(context, attrs);

        mRect = new Rect();
        mPaint = new Paint();
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setColor(0x800000FF);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        int count = getLineCount();
        Rect r = mRect;
        Paint paint = mPaint;

        for (int i = 0; i < count; i++) {
            int baseline = getLineBounds(i, r);

            canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
        }

        super.onDraw(canvas);
    }
} 
在LinesTextView类中编写以下代码

    public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            RelativeLayout rl = new RelativeLayout(this);
            RelativeLayout.LayoutParams text1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            text1.setMargins(0, 0, 0, 0);
            RelativeLayout.LayoutParams text2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            text2.setMargins(0, 26, 0, 0);

            LinesTextView tv1 = new LinesTextView(this, null);
            tv1.setText("This is Text 1. This is Text 1. This is Text 1. This is Text 1. This is Text 1. This is Text 1.");
            tv1.setLineSpacing(20.0f, 1.0f);
            tv1.setLayoutParams(text1);
            tv1.setTextSize(24.0f);
            tv1.setTextColor(getResources().getColor(android.R.color.darker_gray));

            LinesTextView tv2 = new LinesTextView(this, null);
            tv2.setText("This is Text 2. This is Text 2. This is Text 2. This is Text 2. This is Text 2. This is Text 2.");
            tv2.setLineSpacing(25.0f, 1.0f);
            tv2.setLayoutParams(text2);
            tv2.setTextSize(18.0f);
            tv2.setTextColor(getResources().getColor(android.R.color.black));
            rl.addView(tv1);
            rl.addView(tv2);

            this.setContentView(rl);
        }
    }
public class LinesTextView extends TextView
{
    private Rect mRect;
    private Paint mPaint;

    // we need this constructor for LayoutInflater
    public LinesTextView(Context context, AttributeSet attrs) {
        super(context, attrs);

        mRect = new Rect();
        mPaint = new Paint();
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setColor(0x800000FF);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        int count = getLineCount();
        Rect r = mRect;
        Paint paint = mPaint;

        for (int i = 0; i < count; i++) {
            int baseline = getLineBounds(i, r);

            canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
        }

        super.onDraw(canvas);
    }
} 
公共类LinesTextView扩展了TextView
{
私人直肠;
私人油漆;
//我们需要这个构造器来实现LayoutFlater
public LinesTextView(上下文、属性集属性){
超级(上下文,attrs);
mRect=新的Rect();
mPaint=新油漆();
mPaint.setStyle(油漆、样式、笔划);
mPaint.setColor(0x800000FF);
}
@凌驾
受保护的void onDraw(画布){
int count=getLineCount();
Rect r=mRect;
油漆油漆=mPaint;
for(int i=0;i
检查屏幕截图


相应地设置文本颜色、样式、边距和大小。

只需将它们一个放在另一个下面即可。这就是布局的用途。您可以使用RelativeLayout或垂直线性布局轻松完成此操作。您是使用XML还是以编程方式创建文本视图?只是为了添加更多细节,您必须调整两个文本视图上的边距,并且希望使用允许重叠视图的布局,以及将视图背景设置为透明,但总体而言,这可能是实现此效果的最简单方法之一。为什么有人要尝试您的代码?您建议的解决特定问题的解决方案是什么?包括更多细节以获得投票和赞赏#感谢你的建议@Paresh。下次我会记住的。谢谢。但是线条下的边框呢?我认为您必须使用该类型的背景,即带有灰色线条的白色背景,并相应地设置textview位置,或者如果textview满足您的要求,您可以使用标记在textview下面划线。请尝试此链接。我想这个链接会对你有所帮助