1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Android 将图片网址url转化为bitmap drawable转bitmap file转bitmap bitmap转file Bitmap转String Uri转Bitmap

Android 将图片网址url转化为bitmap drawable转bitmap file转bitmap bitmap转file Bitmap转String Uri转Bitmap

时间:2024-05-11 12:17:49

相关推荐

Android 将图片网址url转化为bitmap drawable转bitmap file转bitmap bitmap转file Bitmap转String Uri转Bitmap

file转bitmap

File param = new File();

Bitmap bitmap= BitmapFactory.decodeFile(param.getPath());

drawable转bitmap

Bitmap bmp = BitmapFactory.decodeResource(getResources(),R.mipmap.jcss_03 );

url转bitmap

Bitmap bitmap;public Bitmap returnBitMap(final String url){new Thread(new Runnable() {@Overridepublic void run() {URL imageurl = null;try {imageurl = new URL(url);} catch (MalformedURLException e) {e.printStackTrace();}try {HttpURLConnection conn = (HttpURLConnection)imageurl.openConnection();conn.setDoInput(true);conn.connect();InputStream is = conn.getInputStream();bitmap = BitmapFactory.decodeStream(is);is.close();} catch (IOException e) {e.printStackTrace();}}}).start();return bitmap;}

方法二:

public Bitmap getBitmap(String url) {Bitmap bm = null;try {URL iconUrl = new URL(url);URLConnection conn = iconUrl.openConnection();HttpURLConnection http = (HttpURLConnection) conn;int length = http.getContentLength();conn.connect();// 获得图像的字符流InputStream is = conn.getInputStream();BufferedInputStream bis = new BufferedInputStream(is, length);bm = BitmapFactory.decodeStream(bis);bis.close();is.close();// 关闭流}catch (Exception e) {e.printStackTrace();}return bm;}

可配合前台线程显示

private Handler mHandler = new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case REFRESH_COMPLETE:myheadimage.setImageBitmap(bitmap);//显示break;}}};

String imageUrl = "/uploads/11/111212.jpg";bitmap= returnBitMap(imageUrl);mHandler.sendEmptyMessageDelayed(REFRESH_COMPLETE, 1000);

bitmap转file

private String SAVE_PIC_PATH = Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)? Environment.getExternalStorageDirectory().getAbsolutePath() : "/mnt/sdcard";//private String SAVE_REAL_PATH = SAVE_PIC_PATH + "/good/savePic";//保存的确

saveFile(bmp, System.currentTimeMillis() + ".png");

//保存方法private void saveFile(Bitmap bm, String fileName) throws IOException {String subForder = SAVE_REAL_PATH;File foder = new File(subForder);if (!foder.exists()) foder.mkdirs();File myCaptureFile = new File(subForder, fileName);Log.e("lgq","图片保持。。。。wwww。。。。"+myCaptureFile);ends = myCaptureFile.getPath();if (!myCaptureFile.exists()) myCaptureFile.createNewFile();BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));press(pressFormat.JPEG, 100, bos);bos.flush();bos.close();// ToastUtil.showSuccess(getApplicationContext(), "已保存在/good/savePic目录下", Toast.LENGTH_SHORT);//发送广播通知系统Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);Uri uri = Uri.fromFile(myCaptureFile);intent.setData(uri);this.sendBroadcast(intent);}

if(mbitmap != null){if(Build.VERSION.SDK_INT > Build.VERSION_CODES.Q){saveImage29(mbitmap);}else{if ( saveImage(file, mbitmap)){LgqLogPlus.e("路径---3-- "+file);//发送广播通知系统Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);Uri uri = Uri.fromFile(new File(file));intent.setData(uri);this.sendBroadcast(intent);}}}/*** API29 中的最新保存图片到相册的方法*/private void saveImage29(Bitmap toBitmap) {//开始一个新的进程执行保存图片的操作Uri insertUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new ContentValues());//使用use可以自动关闭流try {OutputStream outputStream = getContentResolver().openOutputStream(insertUri, "rw");if (press(pressFormat.JPEG, 90, outputStream)) {Log.e("保存成功", "success");} else {Log.e("保存失败", "fail");}} catch (FileNotFoundException e) {e.printStackTrace();}}//统一方法将图片Bitmap保存在文件中public static boolean saveImageToFile(Context mContext,String fileName, Bitmap frame) {if (fileName == null || fileName.length() <= 0)return false;if (frame == null || frame.getByteCount() <= 0)return false;ByteArrayOutputStream baos = new ByteArrayOutputStream();press(pressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中int options = 100;while (baos.toByteArray().length / 1024 > 100) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩baos.reset();//重置baos即清空baos//第一个参数 :图片格式 ,第二个参数: 图片质量,100为最高,0为最差 ,第三个参数:保存压缩后的数据的流press(pressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中options -= 10;//每次都减少10}ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片if(bitmap!=null){// AppLog.Loge("压缩后图片大小为:"+bitmap.getByteCount() + "---路径:"+fileName);saveBitmap(bitmap,fileName);}return true;}public static void saveBitmap(Bitmap bitmap,String path) {new Thread(new Runnable() {@Overridepublic void run() {String savePath;File filePic;if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {savePath = path;} else {//AppLog.Loge( "saveBitmap failure : sdcard not mounted");return;}try {filePic = new File(savePath);if (!filePic.exists()) {filePic.getParentFile().mkdirs();filePic.createNewFile();}FileOutputStream fos = new FileOutputStream(filePic);press(pressFormat.JPEG, 100, fos);fos.flush();fos.close();} catch (IOException e) {//AppLog.Loge( "保存图片失败 saveBitmap: " + e.getMessage());return;}//AppLog.Loge( "saveBitmap success: " + filePic.getAbsolutePath());}}).start();}

Uri转Bitmap

public static Bitmap decodeUri(Context context, Uri uri, int maxWidth, int maxHeight) {BitmapFactory.Options options = new BitmapFactory.Options();options.inJustDecodeBounds = true; //只读取图片尺寸readBitmapScale(context, uri, options);//计算实际缩放比例int scale = 1;for (int i = 0; i < Integer.MAX_VALUE; i++) {if ((options.outWidth / scale > maxWidth &&options.outWidth / scale > maxWidth * 1.4) ||(options.outHeight / scale > maxHeight &&options.outHeight / scale > maxHeight * 1.4)) {scale++;} else {break;}}options.inSampleSize = scale;options.inJustDecodeBounds = false;//读取图片内容options.inPreferredConfig = Bitmap.Config.RGB_565; //根据情况进行修改Bitmap bitmap = null;try {bitmap = readBitmapData(context, uri, options);} catch (Throwable e) {e.printStackTrace();}return bitmap;}

bitmap与byte[]之间相互转换

Android 图片压缩,bitmap与byte[]之间相互转换,Bitmap转String:Android 图片压缩,Bitmap旋转,bitmap与byte[]之间相互转换,Bitmap与String互转_meixi_android的博客-CSDN博客_android mipmap转bitmap

bug在线交流:扣Q 108520

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。