钢镚儿冲刺一周期第六天
一、说在前面
昨天完成了权限的申请,今天打算将之前做的图片褪色加上读取内存中的图片并且整合钢镚儿所需要的权限,为之后放入团队项目做准备。
二、整体思路
打算利用下午的时间在网上搜索相似的案例,然后内化成自己的东西,实现功能。
三、代码
由于快到发博客的时间了,并且晚上还有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)); } }
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) { } }); } }