Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片相关的知识,希望对你有一定的参考价值。

Activity之间传递数据是通过Intent来传递的。

Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。 


Android的三个基本组件——Activity,Service和Broadcast Receiver——都是通过Intent机制激活的,不同类型的组件有不同的传递Intent方式:


    要激活一个新的Activity,或者让一个现有的Activity做新的操作,可以通过调用Context.startActivity()或者Activity.startActivityForResult()方法。 

    要启动一个新的Service,或者向一个已有的Service传递新的指令,调用Context.startService()方法或者调用Context.bindService()方法将调用此方法的上下文对象与Service绑定。

    Context.sendBroadcast()、Context.sendOrderBroadcast()、Context.sendStickBroadcast()这三个方法可以发送Broadcast Intent。发送之后,所有已注册的并且拥有与之相匹配IntentFilter的BroadcastReceiver就会被激活。 

    Intent一旦发出,Android都会准确找到相匹配的一个或多个Activity,Service或者BroadcastReceiver作响应。所以,不同类型的Intent消息不会出现重叠,即Broadcast的Intent消息只会发送给BroadcastReceiver,而决不会发送给Activity或者Service。由startActivity()传递的消息也只会发给Activity,由startService()传递的Intent只会发送给Service。

参考技术A 为什么使用Uri传图片呢?
你用Intent把图片的地址传到另一个Activity就OK了,或者把图片对象用Intent传也是Ok的。

android学习——实现两个activity之间的跳转

首先在第一个activity中创建一个按钮,id为button

然后在第一个activity的代码中创建监听器实现跳转,主activity代码如下:

public class FirstActivity extends AppCompatActivity {
    //声明一个button按钮(不需要和实际按钮同名)
    Button bt1;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
        //创建监听器
        bt1 = (Button) findViewById(R.id.button1);
        bt1.setOnClickListener(listener);
    }
    //实现监听器(需要导入android.view.View和android.content.Intent)
    Button.OnClickListener listener = new Button.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
            startActivity(intent);
            FirstActivity.this.finish();
        }
    };
}

需要注意的是要导入名为Intent和View的两个包,如果使用android studio的话可以用alt+enter键自动导入。

以上是关于Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片的主要内容,如果未能解决你的问题,请参考以下文章

Android中两个Activity之间简单通信

android两个activity之间传值

android 两个activity之间切换会有飞入的效果,请问怎么去掉这个效果

在C#中怎样在两个Form之间传递数据(Winfrom)?

在C#中怎样在两个Form之间传递数据(Winfrom)?

android学习——实现两个activity之间的跳转