如何在文字左下方留下图片

时间:2015-08-31 14:23:15

标签: android

我想在图片的左下方显示文字。

+---------------------------+
| Text................ Image|
+.......(remain text)........+

3 个答案:

答案 0 :(得分:0)

您可以在Layout xml文件中执行此操作,只需添加到ImageView此属性:

android:layout_toRightOf="@id/text" 

这将使它位于Text的右侧,然后使它们之间的距离使用此属性:

android:layout_marginRight="70dp"

对于其他文本使用而不是toRightOf - android:layout_below="@id/text",然后再次使用marginRight与屏幕的起点保持距离..将其与正确的文本ID和图像ID分配。< / p>

使用可能的代码编辑:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView"
            android:src="@android:drawable/alert_dark_frame"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView2"
            android:layout_below="@+id/imageView"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />





    </RelativeLayout>
</LinearLayout>

答案 1 :(得分:0)

我使用了这段代码

String text = getResources().getString(R.string.text);
SpannableString ss = new SpannableString(text);
ss.setSpan(new MyLeadingMarginSpan2(6, 230), 0, ss.length(), 0);

TextView textview = (TextView) view.findViewById(R.id.descriptionTextView);
textview.setText(ss);

class MyLeadingMarginSpan2 implements LeadingMarginSpan.LeadingMarginSpan2 {
    private int margin;
    private int lines;

    MyLeadingMarginSpan2(int lines, int margin) {
        this.margin = margin;
        this.lines = lines;
    }

    @Override
    public int getLeadingMargin(boolean first) {
        if (first) {
            return margin;
        } else {
            return 0;
        }
    }

    @Override
    public void drawLeadingMargin(Canvas c, Paint p, int x, int dir,
                                  int top, int baseline, int bottom, CharSequence text,
                                  int start, int end, boolean first, Layout layout) {}
    @Override
    public int getLeadingMarginLineCount() {
        return lines;
    }
}

答案 2 :(得分:0)