Android组件学习笔记(获取手机图片文件)

来源:互联网 发布:郑爽接拍网络电影征途 编辑:程序博客网 时间:2024/05/16 13:38

最近想做一个音乐播放器,不过实力还有些差距,找了些资料,从简单的入手,从获取手机的图片开始

下面是我跟着一位前辈的教程敲的代码。

实现功能:

1.从手机获取图片文件

2.显示在自己的组件上


界面就是一个imageview和一个button就不需要发出来了,不过别忘记给button添加点击事件

图片:


权限设置代码:

  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

实现代码:

package com.example.hp.rect;import android.Manifest;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.content.Intent;import android.content.pm.PackageManager;import android.database.Cursor;import android.graphics.drawable.Drawable;import android.net.Uri;import android.provider.MediaStore;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.animation.BounceInterpolator;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends AppCompatActivity {    int code = 1001;//自己设置一个相当于密码的东西    final String TAG = "test";//测试    ImageView id_imageview;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        checkPermissions();//检测权限、、Android6.0后有此要求,需要在AndroidManifest中声明后再添加一项实现动态的设置权限    }    public boolean checkPermissions() {        // 本app需要以下权限        final String[] ps = {Manifest.permission.READ_EXTERNAL_STORAGE};        // 检查是否有这些权限        int rc = ActivityCompat.checkSelfPermission(this, ps[0]);        if (rc != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(this, ps, 0);            return false;        }        return true;    }    public void goSelect(View view) {//button 的相应函数。这次添加在后台的        Uri uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;        Intent intent = new Intent(Intent.ACTION_PICK, uri);        startActivityForResult(intent, code);    }    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        if (requestCode == code) {            if (resultCode == RESULT_OK) {                Uri imageUri = data.getData();                // 取出文件路径 ( 以下写法基本固定, 照抄即可, 不是本节课的重点 )                // 其实这是又用 imageUri 作了一次查询操作,查询结果里有图片文件的路径                String[] projection = {MediaStore.Images.Media.DATA};                Cursor cursor = getContentResolver().query(imageUri, projection, null, null, null);                cursor.moveToFirst();                int column = cursor.getColumnIndex(projection[0]);                String imagePath = cursor.getString(column);                Log.d(TAG, "选中文件的路径:" + imagePath);//在运行框中显示此句话                // 读取图片并显示                Drawable image = Drawable.createFromPath(imagePath);                ImageView imageView = (ImageView) findViewById(R.id.id_imageview);                imageView.setImageDrawable(image);//在imageview中显示图片            }        }    }}

原创粉丝点击