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

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

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做新的 *** 作,可以通过调用ContextstartActivity()或者ActivitystartActivityForResult()方法。 

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

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

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

内存(emory)

内部存储(ternalStorage)

1)storage或者mnt文件夹下

2) 通过:

EnvironmentgetExternalStorageDirectory()

可以看到外部存储的位置

3) 公有目录(DCIM、DOWNLOAD等),要使用需要申请权限。

4) 私有目录(Android/data/应用包名),只能被当前应用访问。

String path= EnvironmentgetExternalStorageDirectory()getAbsolutePath() +"/Mytesttxt";

try {

if (!fileexists()) {

filecreateNewFile();

    }

}catch (IOException e) {

eprintStackTrace();

}

try {

if (!fileexists()) {

filecreateNewFile();

    }

FileOutputStream fos=new FileOutputStream(path,true);

    String str=infoEdtgetText()toString();

    foswrite(strgetBytes());//以字节流的方式写入

}catch (IOException e) {

eprintStackTrace();

}

<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="androidpermissionMOUNT_UNMOUNT_FILESYSTEMS"/>

其中第二条权限可能会报错,这时候解决办法是:

在报错的地方添加

tools:ignore="ProtectedPermissions"

同时在manifest标签里添加;

 xmlns:tools=">

Test Activity

Java代码

package comnico;

import androidappActivity;

import androidcontentIntent;

import androidosBundle;

import androidviewView;

import androidviewViewOnClickListener;

import androidwidgetButton;

public class Test extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutmain);

Button btn1 = (Button) findViewById(Ridbtn1);

btn1setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(Testthis,Test01class);

startActivity(intent);

}

});

}

}

Test 01 Activity

Java代码

package comnico;

import androidappActivity;

import androidcontentIntent;

import androidosBundle;

import androidutilLog;

import androidviewView;

import androidviewViewOnClickListener;

import androidwidgetButton;

import androidwidgetTextView;

public class Test01 extends Activity {

TextView txt2;

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayouttest01);

Button btn2 = (Button) findViewById(Ridbtn2);

txt2 = (TextView) findViewById(Ridtxt2);

btn2setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent();

intentsetClass(Test01this, Test02class);

intentputExtra("name", "nicolas");

//101 是请求码,方便在onActivityResult方法内处理不同请求码返回的intent 请求码须>=0

startActivityForResult(intent, 101);

}

});

}

@Override

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

superonActivityResult(requestCode, resultCode, data);

Logv("Test","------------------------->");

String ss = datagetStringExtra("newname");

txt2setText(ss);

}

}

Test02 Activity

Java代码

在英语中,"action"和"activity"这两个词都可以表示行为或活动的意思。虽然这两个词在某些情况下可以互换使用,但它们之间确实存在一些细微的差别。

一般来说,"action"更倾向于表示一个具体的行为或动作,尤其是指某种明确的行为或反应,通常具有明确的意图和目的。例如,"I took action to fix the problem"(我采取了行动来解决问题)。

相比之下,"activity"更倾向于表示一种持续的活动或状态,通常没有特定的目的或意图。例如,"I enjoy outdoor activities like hiking and camping"(我喜欢户外活动,比如徒步旅行和露营)。

此外,"action"通常更强调行动的结果或效果,而"activity"则更强调活动本身的过程或经验。

综上所述,"action"和"activity"的区别在于前者更加强调具体的行动和结果,而后者更加强调持续的活动或状态。

android选项菜单怎么添加

android选项菜单怎么添加,Android选择框架--PictureSelector

weixin_39756235

转载

关注

0点赞·464人阅读

png

功能特点

支持通过拍照获取

支持通过相册获取

支持裁切

支持仿IOS底部d出选择菜单ActionSheet效果

支持60动态授予权限

解决有黑边问题

解决70调用相机crash问题

解决小米miui系统调用系统裁剪功能crash问题

使用

Step 1 添加JitPack仓库

在项目的buildgradle添加JitPack仓库

allprojects {

repositories {

maven { url ">

以上就是关于Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片全部的内容,包括:Android 两个Activity之间怎样使用Uri传递图片,怎样获取图片的Uri,怎样通过Uri得到图片、Android外部存储ExternalStorage、Android 用startforresult调用系统相册以后,不选照片 直接返回 在onacti等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9448525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存