在TextView的背景上获取文本

时间:2015-02-20 09:15:25

标签: android android-activity textview

任何人都可以告诉我如何通过TextView的文本获取背景图像 像这样

enter image description here

我能够通过TextView获取背景图像,但图像显示在textView下面 enter image description here

任何人都可以帮助我

先谢谢

5 个答案:

答案 0 :(得分:2)

试试这段代码: 将您的背景设置为RelativeLayout

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"/>

</RelativeLayout>

答案 1 :(得分:2)

请尝试这个希望它会帮助你

&#13;
&#13;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

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

     <ImageView
         android:id="@+id/imageView1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_alignParentTop="true"
         android:src="@drawable/abc_ab_solid_light_holo" />

     <TextView
         android:id="@+id/textView1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
         android:layout_centerVertical="true"
         android:text="TextView" />

    </RelativeLayout>
    
</LinearLayout>
&#13;
&#13;
&#13;

答案 2 :(得分:2)

1)我不知道你打算做什么,但这看起来像ProgressBar

2)但是如果你想坚持这种配置,请使用这种布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="16dp"
                android:paddingRight="16dp"
                android:paddingTop="16dp"
                android:paddingBottom="16dp"
                tools:context="com.example.MainActivity">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignTop="@+id/textViewPercentage"
        android:layout_alignLeft="@+id/textViewPercentage"
        android:layout_alignRight="@+id/textViewPercentage"
        android:layout_alignBottom="@+id/textViewPercentage"
        android:weightSum="10"
        >
        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:id="@+id/imageViewProgress"
            android:background="#0F0"/>
        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="7"
            android:id="@+id/imageViewTotal"
            android:background="#000"/>
    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="30%"
        android:ems="10"
        android:gravity="center"
        android:textColor="#FFF"
        android:id="@+id/textViewPercentage"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"/>

</RelativeLayout>

在Java代码中,使用它来更改文本:

((TextView) findViewById(R.id.textViewPercentage)).setText("10%");

使用此项更改栏内颜色的“百分比”:

int weight = 5; // put a number between 0 and 10 here

LinearLayout.LayoutParams myLayoutParamsProgress = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT);
myLayoutParamsProgress.weight = weight;
LinearLayout.LayoutParams myLayoutParamsTotal = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT);
myLayoutParamsTotal.weight = 10 - weight;

findViewById(R.id.imageViewProgress).setLayoutParams(myLayoutParamsProgress);
findViewById(R.id.imageViewTotal).setLayoutParams(myLayoutParamsTotal);

答案 3 :(得分:0)

使用Frame LayoutImageView置于TextView之上。 希望这是你要求的。

或者使用像这样的相对布局

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

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"/>
   <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"/>

  </RelativeLayout>

将图像设置为此imageview将显示在textview上方。

答案 4 :(得分:0)

你可以将背景设置为textview,如:

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/ur_background_image"
    android:padding="10dp"
    android:text="30%" />