Android将TextView保留在ImageView内的固定位置

时间:2017-05-01 19:26:05

标签: android android-layout textview imageview

我目前正在尝试获得某种动态信用卡图片,但我想要的是能够设置数字和信用卡,这是一个imageview。现在我需要我的textview在所有屏幕尺寸的同一位置,但我无法实现这一点。

有人能指出我正确的方向吗?或者与我分享更好的方式?这就是我现在所拥有的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#fff"
            android:padding="10dp">

<ImageView
    android:id="@+id/creditcardimage"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    app:srcCompat="@drawable/creditcardblue"/>

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/creditcardimage"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="81dp"
    android:layout_marginLeft="30dp"
    android:layout_marginStart="30dp"
    android:text="1234 5678 9876 5432"
    android:textSize="20sp"/>

这是一个想法的图像:

CreditCard preview

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以按照以下步骤进行操作

  1. 有一个固定大小的参考视图。
  2. 在该视图上绘制文本。由于视图具有固定大小,因此将绘制文本 总是在正确的位置。
  3. 现在将参考视图和重叠的textview转换为位图。
  4. 现在将此位图设置为实际图像视图。此图像视图以及文本 将根据当前设备配置进行扩展。
  5. 您还可以设置adjustViewBonds和其他属性,以便imageview的宽高比不会改变。