图片的异步加载和双缓存学习笔记——HomeActivity
HomeActivity学习
1.返回按键的监听,简单的方式,将super.onBackPressid()注解掉后,返回将不起作用。
1 /** 2 * 按下载返回键按的监听 3 */ 4 @Override 5 public void onBackPressed() { 6 imageLoader.stop(); 7 Toast.makeText(this, "i will go out!", Toast.LENGTH_LONG).show(); 8 super.onBackPressed(); 9 }
2.将assets中的图片复制到SD卡中,使用的线程和getAssets().open(文件的名称,这个是一张图片);
在使用FileoutputStream的时候,需要用fos.fulsh(),来输出缓存的内容,然后将其关闭。
1 /** 2 * 将assets中的图片复制到SD卡中 3 * @param testImageOnSdCard 4 */ 5 private void copyTestImageToSdCard(final File testImageOnSdCard) { 6 new Thread(new Runnable() { 7 @Override 8 public void run() { 9 try { 10 InputStream is = getAssets().open(TEST_FILE_NAME); 11 FileOutputStream fos = new FileOutputStream( 12 testImageOnSdCard); 13 byte[] buffer = new byte[8192]; 14 int read; 15 try { 16 while ((read = is.read(buffer)) != -1) { 17 fos.write(buffer, 0, read); 18 } 19 } finally { 20 fos.flush(); 21 fos.close(); 22 is.close(); 23 } 24 } catch (IOException e) { 25 L.w("Can't copy test image onto SD card"); 26 } 27 } 28 }).start(); 29 }
3.android:onClick="onImageListClick"的使用,每个view可以设置不同的onClick属性,然后在activity中如下使用:
1 public void onImageListClick(View view) { 2 dosomething(); 3 } 4 5 public void onImageGridClick(View view) { 6 dosomething(); 7 } 8 9 public void onImagePagerClick(View view) { 10 dosomething(); 11 } 12 13 public void onImageGalleryClick(View view) { 14 dosomething(); 15 }
源码地址下载 https://github.com/nostra13/Android-Universal-Image-Loader