本菜开源的一个自己写的Demo,希望能给Androider们有所帮助,水平有限,见谅见谅..
https://github.com/zhiaixinyang/MyFirstApp
原版是百度就能出来的一些工具类,然后自己在实际使用的时候稍加改动。
可能有些自己封装的方法并不是特别的完善,希望各位Androider能够指出了,共同前进...
通过URI获取URL
//本例用于图片媒体资源 //先通过getDate拿到Uri Uri uri= getIntent().getData(); String[] proj = {MediaStore.Images.Media.DATA}; //原版使用managedQuery方法,现已经过时。更换方法Context.getContentResolver().query() Cursor actualimagecursor = getContentResolver().query(uri, proj, null, null, null); int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); actualimagecursor.moveToFirst(); String img_path = actualimagecursor.getString(actual_image_column_index); File file = new File(img_path);
通过URL获取Bitmap对象。
public static Bitmap getBitmap(String path) { Bitmap bm = null; InputStream is = null; try { File outFilePath = new File(path); //判断如果当前的文件不存在时,创建该文件一般不会不存在 if (!outFilePath.exists()) { boolean flag = false; try { flag = outFilePath.createNewFile(); } catch (IOException e) { e.printStackTrace(); } System.out.println("---创建文件结果----" + flag); } is = new FileInputStream(outFilePath); bm = BitmapFactory.decodeStream(is); } catch (FileNotFoundException e) { e.printStackTrace(); return null; } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return bm; }
通过byte然后转化成Bitmap
public static Bitmap getBitmapFromByte(byte[] datas){ if (datas.length!=0){ return BitmapFactory.decodeByteArray(datas,0,datas.length); }else{ return null; } }
把Bitmap转化成bytepublic static byte[] getByteFromBitmap(Bitmap bitmap){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] bytes=baos.toByteArray(); return bytes; }
通过路径获取文件名字public static String getFileName(String url) { String filename = ""; boolean isok = false; // 从UrlConnection中获取文件名称 try { URL myURL = new URL(url); URLConnection conn = myURL.openConnection(); if (conn == null) { return null; } Map<String, List<String>> hf = conn.getHeaderFields(); if (hf == null) { return null; } Set<String> key = hf.keySet(); if (key == null) { return null; } for (String skey : key) { List<String> values = hf.get(skey); for (String value : values) { String result; try { result = new String(value.getBytes("ISO-8859-1"), "GBK"); int location = result.indexOf("filename"); if (location >= 0) { result = result.substring(location + "filename".length()); filename = result .substring(result.indexOf("=") + 1); isok = true; } } catch (UnsupportedEncodingException e) { e.printStackTrace(); }// ISO-8859-1 UTF-8 gb2312 } if (isok) { break; } } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 从路径中获取 if (filename == null || "".equals(filename)) { filename = url.substring(url.lastIndexOf("/") + 1); } return filename; }