ShowAllPic--图片

原创
2015/05/11 10:26
阅读数 12
package com.example.gally_3d;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import android.util.Log;

public class ShowAllPic {
 /**
  * 遍历整个sd卡,获得所有图片的路径信息的集群
  */
 public void ListFiles(String path, List<String> listPath) {
  // File file = new File(path);
  File file = new File(path.substring(0, path.lastIndexOf("/")));
  if (!file.exists()) {
   file.mkdir();
  }
  if (file == null) {
   return;
  } else if (file.isDirectory() && path.length() > 4) {// 如果路径长度小于4,表示路径不存在(sdcard)
   String reName = path.substring(0, 4);
   // Log.i("aaa", reName+" fileName1");
   if (reName.equals("/sys") || reName.equals("/tmp")
     || reName.equals("/pro")) {// 系统文件
    return;
   }
  }
  File[] fs = file.listFiles();
  if (fs == null) {
   FileSave(path, null);
   Log.i("aaa", " fileName2");
   return;
  }
  // Recursion(fs, listPath);
  for (File f : fs) {
   if (f == null) {
    continue;
   } else {
    String fileName = f.getName();
//    Log.i("aaa", fileName + " fileName");
    String htx = fileName.substring(fileName.lastIndexOf(".") + 1,
      fileName.length()).toLowerCase();// 取得扩展名,并且将值转化成小写
    // if (htx.equals("png") || htx.equals("gif") ||
    // htx.equals("jpg")
    // || htx.equals("bmp")) {
    // listPath.add(f.getPath());
    // Log.i("aaa", listPath.size() + " asdasdas " + f.getPath());
    // }
//    Log.i("aaa", htx + " asdasdas " + f.getPath());
    if (htx.substring(0).equals("jpg")
      || htx.substring(0).equals("png")) {
     listPath.add(f.getPath());
    }
    path = f.getAbsolutePath();
    if (f.isDirectory() == true) {
     ListFiles(path, listPath); // 当f为文件夹的时候,进入文件夹中
    }
   }
  }
 }
 public static void FileSave(String filename, Bitmap bitmap) {
  // String fileName = "/sdcard/myImage/111.jpg";
//  Log.i("aaa", filename+" filename");
   String sdStatus = Environment.getExternalStorageState();
  if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
//            Log.i("aaa",
//                    "SD card is not avaiable/writeable right now.");
   
            return;
        }
  Log.i("liang", filename.substring(0, filename.lastIndexOf("/"))+" filename");
   File file = new File(filename.substring(0, filename.lastIndexOf("/")));
  if (!file.exists()) {
   file.mkdirs();// 创建文件夹
  }else{
//   Log.i("aaa",
//            "sd");
  }
  FileOutputStream b;
  try {
   b = new FileOutputStream(filename);
   if (bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b)) {// 把数据写入文件
//    Log.i("aaa", "sd png");
   }else{
    Log.i("aaa", "no sd png");
   }
   b.flush();
   b.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
   Log.i("aaa", e.getMessage()+" a");
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   Log.i("aaa", e.getMessage()+" b");
  }
 }
 /** 取得网络上的图片 
  * @param  context */
 public static Bitmap GetNetBitmap(String url) {
  URL imageUrl = null;
  Bitmap bitmap = null;
  try {
   imageUrl = new URL(url);
  } catch (MalformedURLException e) {
   Log.v("aaa", e.getMessage());
  }
  if (imageUrl != null) {
   try {
    HttpURLConnection conn = (HttpURLConnection) imageUrl
      .openConnection();
    conn.setDoInput(true);// 设置请求的方式
    conn.connect();
    InputStream is = conn.getInputStream();// 将得到的数据转化为inputStream
    bitmap = BitmapFactory.decodeStream(is);// 将inputstream转化为Bitmap
    is.close();// 关闭数据
    String fileName=url.substring(url.lastIndexOf('/')+1,url.length());
    FileSave("/sdcard/Gallery3D/"+fileName, bitmap);
   } catch (IOException e) {
    e.printStackTrace();
   }
  } else {
   Log.v("aaa", "Url is Null!!");
  }
  return bitmap;
 }
 //File file = new File(path);
// file.delete();
 
 public void FileDel(String filename) {
  // String fileName = "/sdcard/myImage/111.jpg";
//  Log.i("aaa", filename+" filename");
   String sdStatus = Environment.getExternalStorageState();
  if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
//            Log.i("aaa",
//                    "SD card is not avaiable/writeable right now.");
   
            return;
        }
  File file = new File(filename);
  
  Log.i("aaa", file.delete()+" file.delete() "+filename);
  file.delete();
 }
 
 public byte[] getBitmapByte(Bitmap bitmap) {
  ByteArrayOutputStream out = new ByteArrayOutputStream();
  bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
  try {
   out.flush();
   out.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
//  for(int i=0;i<out.toByteArray().length;i++){
//   Log.d("liang", Integer.toBinaryString(out.toByteArray()[i])+" out.toByteArray()");
//  }
  return out.toByteArray();
 }
 
 public void FileSave1(byte[] b2){
  String sdStatus = Environment.getExternalStorageState();
  if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
//          Log.i("aaa",
//                  "SD card is not avaiable/writeable right now.");
   
          return;
      }
   File file = new File("/sdcard/222/");
  if (!file.exists()) {
   file.mkdirs();// 创建文件夹
  }else{
   Log.i("aaa",
          "sd");
  }
  FileOutputStream b;
  try {
   b = new FileOutputStream("/sdcard/222/m.m");//存储地址及文件名
   b.write(b2);//图片
   b.flush();
   b.close();
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部