获取图像的采集和使用Android的另一个活动的另一个布局显示图像 [英] Get image from capture and show image in another layout using another activity in android

查看:107
本文介绍了获取图像的采集和使用Android的另一个活动的另一个布局显示图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用SecondActivity捕捉由点击按钮捕获在FirstActivity并显示图像中的activity_second(布局)后,显示的图像。

FirstActivity

 公共无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_first);

    按钮take_photo =(按钮)findViewById(R.id.btn_capture);
    take_photo.setOnClickListener(新OnClickListener(){

            公共无效的onClick(视图v){
                意图I =新的意图(android.provider.MediaStore.ACTION_IM​​AGE_CAPTURE);
                startActivity(ⅰ);
            }
        });
}
 

布局activity_first

 > < RelativeLayout的的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:工具=htt​​p://schemas.android.com/tool​​s
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent>

    <按钮
        机器人:ID =@ + ID / btn_capture
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_alignParentLeft =真
        机器人:layout_alignParentTop =真
        机器人:layout_marginLeft =21dp
        机器人:文本=捕捉/>

< / RelativeLayout的>
 

SecondActivity

 >公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_second);

        ImageView的观点=(ImageView的)findViewById(R.id.view_photo);
    }
 

activity_second

 > < XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>

    < ImageView的
        机器人:ID =@ + ID / view_photo
        机器人:layout_width =260dp
        机器人:layout_height =374dp/>

< / LinearLayout中>
 

解决方案

使用startActivityForResult()而不是startActivity()

  @覆盖
保护无效onActivityResult(INT申请code,INT结果code,意图数据){
    // TODO自动生成方法存根
    super.onActivityResult(要求code,因此code,数据);
    位图的缩略图= NULL;
    如果(要求code == CAMERA_PIC_REQUEST){

        如果(结果code == RESULT_OK){

            。缩略图=(位图)data.getExtras()获得(数据);

            意图I =新的意图(这一点,NextActivity.class);
            i.putExtra(名,缩略图);
            startActivity(ⅰ);



        }

    }

}
 

接下来的下一个活动尝试使用此

 保护无效的onCreate(包savedInstanceState){
    // TODO自动生成方法存根
    super.onCreate(savedInstanceState);
     // intialize图像视图

点阵位图= getIntent()getExtras()getParcelable(数据)。;
//此处设置的图像。
}
 

希望这可以帮助你。

I want to show image after capture by click button Capture in the FirstActivity and show image in the activity_second(layout) using SecondActivity.

FirstActivity

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);

    Button take_photo = (Button) findViewById(R.id.btn_capture);
    take_photo.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivity(i);
            }
        });
}

Layout activity_first

> <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" >

    <Button
        android:id="@+id/btn_capture"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="21dp"
        android:text="Capture" />

</RelativeLayout>

SecondActivity

> public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        ImageView view = (ImageView) findViewById(R.id.view_photo);
    }

activity_second

> <?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/view_photo"
        android:layout_width="260dp"
        android:layout_height="374dp" />

</LinearLayout>

解决方案

use startActivityForResult() instead of startActivity()

         @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    Bitmap thumbnail = null;
    if (requestCode == CAMERA_PIC_REQUEST) {

        if (resultCode == RESULT_OK) {

            thumbnail = (Bitmap) data.getExtras().get("data");

            Intent i = new Intent(this, NextActivity.class);
            i.putExtra("name", thumbnail);
            startActivity(i);



        }

    }

}

Next in the next activity try to use this

       protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
     //     intialize the image view 

Bitmap bitmap  = getIntent().getExtras().getParcelable("data");
//set the image here.
}

Hope this may help you

这篇关于获取图像的采集和使用Android的另一个活动的另一个布局显示图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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