钢镚儿冲刺一周期第六天

一、说在前面

  昨天完成了权限的申请,今天打算将之前做的图片褪色加上读取内存中的图片并且整合钢镚儿所需要的权限,为之后放入团队项目做准备。

二、整体思路

  打算利用下午的时间在网上搜索相似的案例,然后内化成自己的东西,实现功能。

三、代码

  由于快到发博客的时间了,并且晚上还有PS课,所以先发出来,晚上上完课之后今天加加班!补全代码(已补)

package com.example.imgpicker;

import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.view.View;

@RequiresApi(api = Build.VERSION_CODES.M)
public class MainActivity extends AppCompatActivity {

    private static final int PERMISSION_REQUEST_CODE = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkPermission();

    }


    private void checkPermission() {
        int readExStoragePermissionRest = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
        if (readExStoragePermissionRest!= PackageManager.PERMISSION_GRANTED){
            //没有权限
            requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},PERMISSION_REQUEST_CODE);

        }
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        if (requestCode==PERMISSION_REQUEST_CODE){
            if (grantResults.length==0&&grantResults[0]== PackageManager.PERMISSION_GRANTED) {
                //有权限

            }else {
                //没有权限
                //根据交互去处理

            }
        }
    }

    public void pickImgs(View view){
        // 打开另外一个界面
        startActivity(new Intent(this,PickerAvtivity.class));
    }

}
MainActivity
package com.example.imgpicker;

import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
import androidx.loader.content.Loader;

//D/PickerAvtivity: onCreate: ====================================
//D/PickerAvtivity: _id  ====  43
//D/PickerAvtivity: _data  ====  /storage/emulated/0/DCIM/Camera/IMG_20200420_064425.jpg
//D/PickerAvtivity: _size  ====  197214
//D/PickerAvtivity: _display_name  ====  IMG_20200420_064425.jpg
//D/PickerAvtivity: mime_type  ====  image/jpeg
//D/PickerAvtivity: title  ====  IMG_20200420_064425
//D/PickerAvtivity: date_added  ====  1587365066
//D/PickerAvtivity: date_modified  ====  1587365066
//D/PickerAvtivity: description  ====  null
//D/PickerAvtivity: picasa_id  ====  null
//D/PickerAvtivity: isprivate  ====  null
//D/PickerAvtivity: latitude  ====  37.422
//D/PickerAvtivity: longitude  ====  -122.084
//D/PickerAvtivity: datetaken  ====  1587365065974
//D/PickerAvtivity: orientation  ====  0
//D/PickerAvtivity: mini_thumb_magic  ====  null
//D/PickerAvtivity: bucket_id  ====  -1739773001
//D/PickerAvtivity: bucket_display_name  ====  Camera
//D/PickerAvtivity: width  ====  960
//D/PickerAvtivity: height  ====  1280
//D/PickerAvtivity: onCreate: ====================================

public class PickerAvtivity extends AppCompatActivity {

    private static final String TAG = "PickerAvtivity";
    public static final int LOADER_ID=1;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_picker);

//        ContentResolver contentResolver=getContentResolver();
//        Uri imageUri= MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
//        Cursor query =contentResolver.query(imageUri,null,null,null,null);
//        String[] colunmNames=query.getColumnNames();
//        while (query.moveToNext()){
//            Log.d(TAG, "onCreate: ====================================");
//            for (String colunmName : colunmNames) {
//                Log.d(TAG, colunmName+"  ====  "+query.getString(query.getColumnIndex(colunmName)));
//            }
//            Log.d(TAG, "onCreate: ====================================");
//        }
//        query.close();

        initLoader();
    }

    private void initLoader() {
        LoaderManager loaderManager=LoaderManager.getInstance(this);
        loaderManager.initLoader(LOADER_ID, null, new LoaderManager.LoaderCallbacks<Cursor>() {
            @NonNull
            @Override
            public Loader<Cursor> onCreateLoader(int id, @Nullable Bundle args) {
                if(id==LOADER_ID){
                    return new CursorLoader(PickerAvtivity.this,MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                            new String[]{"_data","_display_name","date_added"},
                            null,null,"date_added DESC");
                }
                return null;

            }

            @Override
            public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor cursor) {
                if (cursor!=null){
                    String[] colunmNames=cursor.getColumnNames();
                    while (cursor.moveToNext()){
                        Log.d(TAG, "onCreate: ====================================");
                        for (String colunmName : colunmNames) {
                            Log.d(TAG, colunmName+"  ====  "+cursor.getString(cursor.getColumnIndex(colunmName)));
                        }
                        Log.d(TAG, "onCreate: ====================================");
                    }
                    cursor.close();
                }

            }

            @Override
            public void onLoaderReset(@NonNull Loader<Cursor> loader) {

            }
        });



    }
}
PickerActivity

四、个人体会

  在网上寻寻觅觅了好久都没有找到合适的案例,荡来的代码由于版本的问题在我的电脑上始终没能跑起来。兜兜转转之后回到了之前Android开发学习的那个up主,便想起来之前每天在他那里学习的日子,当时想每天坚持学习一点,自己会变得厉害吧。可是后来缺半途而废了,没能坚持一直学习。之后我要捡起之前的想法,持之以恒把拉大锯的学习视频都看完!加油。

原文地址:https://www.cnblogs.com/suanai/p/12762403.html