大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
最近在学习安卓的过程中,学到了从相册中选取图片的内容。
// java版 Activity的代码
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import java.io.FileNotFoundException;
public class MainActivity extends AppCompatActivity {
int REQUEST_IMAGE_OPEN = 2;
ImageView imgView = null; //用于显示图片
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);//打开相册按钮
imgView = (ImageView) findViewById(R.id.imgView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//打开相册
Intent intent = new Intent(Intent.ACTION_PICK);
//指定获取的是图片
intent.setType("image/*");
startActivityForResult(intent, REQUEST_IMAGE_OPEN);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//将选择的图片显示
if(requestCode == REQUEST_IMAGE_OPEN && resultCode == Activity.RESULT_OK &&data !=null){
Uri uris;
uris = data.getData();
Bitmap bitmap = null;
//Uri转化为Bitmap
try {
bitmap = getBitmapFromUri(uris);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
imgView.setImageBitmap(bitmap);
}
}
//Uri转化为Bitmap
private Bitmap getBitmapFromUri(Uri uri) throws FileNotFoundException {
Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
return bitmap;
}
}
// kotlin版 Activity的代码
import android.app.Activity
import android.content.Intent
import android.graphics.BitmapFactory
import android.net.Uri
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
val REQUEST_IMAGE_OPEN = 2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
val intent = Intent(Intent.ACTION_PICK)
//指定获取的是图片
intent.type = "image/*"
startActivityForResult(intent, REQUEST_IMAGE_OPEN);
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when(requestCode){
REQUEST_IMAGE_OPEN->{
if(resultCode == Activity.RESULT_OK &&data !=null){
data.data?.let{
uri->
//将图片显示
val bitmap = getBitmapFromUri(uri)
imgView.setImageBitmap(bitmap)
}
}
}
}
}
private fun getBitmapFromUri(uri: Uri) = contentResolver
.openFileDescriptor(uri,"r")?.use {
BitmapFactory.decodeFileDescriptor(it.fileDescriptor)
}
}
官方文档用的是Intent.ACTION_OPEN_DOCUMENT 或者Intent.ACTION_GET_CONTENT
这里用了Intent.ACTION_PICK实现获取图片
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190522.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...