如何在图像视图上写文字?

时间:2013-09-17 06:38:06

标签: android android-layout text fonts android-emulator

我需要在图像视图上实现文本,用户可以在图像视图上键入文本。我们如何根据用户实现文本并根据用户添加字体?

这是我的完整图片活动类

     public class FullImageActivity extends Activity {

       @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fullimage);

        // get intent data
        Intent i = getIntent();

        // Selected image id
        int position = i.getExtras().getInt("id");
        ImageAdapter imageAdapter = new ImageAdapter(this);

        ImageView imageView = (ImageView) findViewById(R.id.full_image_view);
        imageView.setImageResource(imageAdapter.mThumbIds[position]);
    }

}

fullimage.xml

 <?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"
android:orientation="vertical" >

<ImageView android:id="@+id/full_image_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

 </LinearLayout>

6 个答案:

答案 0 :(得分:1)

<ImageView android:id="@+id/full_image_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

<TextView
    android:id="@+id/myImageViewText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/myImageView"
    android:layout_alignTop="@+id/myImageView"
    android:layout_alignRight="@+id/myImageView"
    android:layout_alignBottom="@+id/myImageView"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="Your Text"
    android:textColor="#000000" />

注意:它仅适用于RELATIVE LAYOUT

或尝试以下代码

TextView t = (TextView)findViewById(R.id.text_view);
t.setGravity(Gravity.CENTER);
t.setBackgroundResource(R.drawable.my_drawable);
t.setText("your text");

FOR EDITEXT

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:gravity="center_vertical"  >

    <ImageView
        android:id="@+id/full_image_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

    <EditText
        android:id="@+id/edit_text1"
        android:layout_alignParentBottom="true" />

</RelativeLayout>

答案 1 :(得分:0)

根据您的需要,在RelativeLayout中添加ImageView和EditText: -

<RelativeLayout android:id="@+id/full_image_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView android:id="@+id/full_image_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

    <EditText android:id="@+id/my_edit_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"  //or any other alignment you want
    android:text="ABCD"
    />

</RelativeLayout>

答案 2 :(得分:0)

添加相对布局,然后添加imageview,并在其上添加textview。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:src="@drawable/icon_favorites" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

</RelativeLayout>

答案 3 :(得分:0)

使用如下框架布局:

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

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher" />

<TextView
    android:id="@+id/tvText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Your Text" Visibility="Gone" />

</FrameLayout>

在代码中,当用户触摸imageview上的特定位置时,通过设置textview的边距来显示textview

答案 4 :(得分:0)

// try this
<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top" // set gravity as per your requirement to show
            android:gravity="center_vertical"
            android:textStyle="bold" />
    </FrameLayout>

答案 5 :(得分:0)

这项工作很好。

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

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/fb_background" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="TextView" />
</FrameLayout>