从imageview和textview创建图像? [英] Create Image from imageview and textview?

查看:160
本文介绍了从imageview和textview创建图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个应用程序,允许用户将照片添加到手机图库中的图像视图中,我已经能够成功编写代码。我现在希望能够允许用户在照片顶部添加文本,然后将文本和图像作为一个保存回到库中。有没有办法做到这一点?

I'm making an app that will allow the user to add a photo to an imageview from the gallery of their phone which I have already been able to code successfully. I now want to be able to allow the user to add text on top of the photo and then save the text and image as one back into the gallery. Is there any way to do this?

XML:

  <LinearLayout 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical" 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <ImageView android:id="@+id/image" android:layout_height="400dp" android:layout_width="fill_parent"/>
    <LinearLayout 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent" 
        android:orientation="horizontal">
        <Button 
            android:id="@+id/chooseimage" 
            android:layout_height="fill_parent" 
            android:layout_weight="1" 
            android:layout_width="fill_parent" 
            android:text="Choose Image"/>
        <Button 
            android:id="@+id/addtext" 
            android:layout_height="fill_parent" 
            android:layout_weight="1" 
            android:layout_width="fill_parent" 
            android:text="Add Text"/>
        <Button 
            android:id="@+id/save" 
            android:layout_height="fill_parent" 
            android:layout_weight="1" 
            android:layout_width="fill_parent" 
            android:text="Save"/>
    </LinearLayout>
</LinearLayout>  

Member.java

Member.java

public class MemberActivity extends Activity implements OnClickListener {
    /**
     * Called when the activity is first created.
     */

    private static final int SELECT_IMAGE = 1;
    Button openGallery;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.design);
        openGallery = (Button) findViewById(R.id.chooseimage);
        openGallery.setOnClickListener(this);

    }

    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
            case R.id.chooseimage:
                Intent gallery = new Intent(
                        Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                startActivityForResult(gallery, SELECT_IMAGE);
                break;
            default:
                break;
        }
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == RESULT_OK && requestCode == SELECT_IMAGE) {
            Uri selectedImage = data.getData();
            String path = getPath(selectedImage);
            Bitmap bitmapImage = BitmapFactory.decodeFile(path);
            ImageView image = (ImageView) findViewById(R.id.image);
            image.setImageBitmap(bitmapImage);
        }
    }

    public String getPath(Uri uri) {
        String[] filePathColumn = {MediaStore.Images.Media.DATA};

        Cursor cursor = getContentResolver().query(uri, filePathColumn, null, null, null);
        cursor.moveToFirst();
        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);

        return cursor.getString(columnIndex);
    }
}


推荐答案

是有一种方法可以做到这一点,

Yes there is a way to do this,

您可以使用 buildDrawingCache()和<创建任何视图的位图code> getDrawingCache()

TextView tv = (TextView)findViewById(R.id.textview);
tv.buildDrawingCache();
ImageView img = (ImageView)findViewById(R.id.imageview);
img.setImageBitmap(tv.getDrawingCache());

您还可以查看 回答以供进一步参考。

You can also check this answer for further reference.

这篇关于从imageview和textview创建图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆