xml布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.andy.image.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical"> <TextView android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:text="原图"/> <ImageView android:id="@+id/image1" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical"> <TextView android:id="@+id/tv2" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:text="二次采样"/> <ImageView android:id="@+id/image2" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="vertical"> <TextView android:id="@+id/tv3" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="18sp" android:text="质量压缩"/> <ImageView android:id="@+id/image3" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> </LinearLayout> 二次采样: private void doubleSampling() { try { InputStream in = getAssets().open("mm.jpg"); BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeStream(in, null, options); int inSampleSize = 1; int width = options.outWidth; int height = options.outHeight; //400*300 while (width / inSampleSize > 400 || height / inSampleSize > 300) { inSampleSize *= 2; } options.inSampleSize = inSampleSize; options.inJustDecodeBounds = false; Bitmap bitmap = BitmapFactory.decodeStream(in, null, options); // image2.setImageBitmap(bitmap); //showBitmap(bitmap, tv2); } catch (IOException e) { e.printStackTrace(); } } 质量压缩:private void显示图片的高宽:compressImage
() { try { InputStream in = getAssets().open("mm.jpg"); Bitmap bitmap = BitmapFactory.decodeStream(in); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 10, stream); bitmap.recycle(); byte[] bytes=stream.toByteArray(); Bitmap bitmap1 = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); //image3.setImageBitmap(bitmap1); //showBitmap(bitmap1,tv3); } catch (IOException e) { e.printStackTrace(); } }private void showBitmap(Bitmap bitmap, TextView tv) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); int size = bitmap.getRowBytes() * bitmap.getHeight(); String fileSize = Formatter.formatFileSize(this, size); //tv.setText(tv.getText() + "----" + width + "*" + height + "------" + size + "---" + fileSize); }