1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
public class MainActivity extends AppCompatActivity {
private static final int MY_READ_PERMISSION = 123;
private List<Images> listImages = new ArrayList<>();
RecyclerView recyclerView;
RecyclerView.Adapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
recyclerView.setLayoutManager(new GridLayoutManager(this,3));
}
public ArrayList<Images> getImages() {
ArrayList<Images> imageArrayList = new ArrayList<>();
Cursor cursor = null;
try {
cursor = this.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
int dataIndex = cursor.getColumnIndex(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
do {
Images img = new Images();
String dataString = cursor.getString(dataIndex);
img.setData(dataString);
imageArrayList.add(img);
}while (cursor.moveToNext());
}catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
}
}
// Close the curosor
cursor.close();
return imageArrayList;
}
public void showImage() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_READ_PERMISSION);
//After this point you wait for callback in onRequestPermissionsResult(int, String[], int[]) overriden method
} else {
listImages = getImages();
adapter = new ImageAdapter(this,listImages);
recyclerView.setAdapter(adapter);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
if (requestCode == MY_READ_PERMISSION) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission accordée
showImage();
} else {
Toast.makeText(this, "Permission non accordée", Toast.LENGTH_LONG).show();
}
}
}
} |
Partager