二次采样
来源:互联网 发布:c 数组类型转换 编辑:程序博客网 时间:2024/04/29 16:35
package com.example.a06_erci_demo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.image_view);
}
public void erCi(View view){
/*Uri parse = Uri.parse(Environment.getExternalStorageDirectory() + "/aaa.jpg");
imageView.setImageURI(parse);*/
Bitmap bitmap = getBitmap(Environment.getExternalStorageDirectory() + "/aaa.jpg", 320, 480);
imageView.setImageBitmap(bitmap);
}
/**
* 二次采样 返回bitmap
* @param path
* @param width
* @param height
* @return
*/
private Bitmap getBitmap(String path,int width,int height){
BitmapFactory.Options options = new BitmapFactory.Options();
//设置只加载边框
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path,options);
//拿到边框的宽高
int outWidth = options.outWidth;
int outHeight = options.outHeight;
//计算缩放的比例
int scaleX = outWidth/width;
int scaleY = outHeight/height;
//初始化压缩比例
int sampleSize = 1;
if (scaleX>scaleY && scaleY>1){
sampleSize = scaleX;
}else if (scaleY>scaleX && scaleX>1){
sampleSize = scaleY;
}
//第二次,,,根据比例进行压缩,并且压缩图片的质量
options.inJustDecodeBounds = false;
//设置压缩的比例
options.inSampleSize = sampleSize;
//设置图片的质量...Bitmap.Config.RGB_565一个像素点在内存中占有2个字节...Bitmap.Config.ARGB_8888占有四个字节
options.inPreferredConfig = Bitmap.Config.RGB_565;
//以指定的选项解码图片,,,返回
return BitmapFactory.decodeFile(path,options);
}
}
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.image_view);
}
public void erCi(View view){
/*Uri parse = Uri.parse(Environment.getExternalStorageDirectory() + "/aaa.jpg");
imageView.setImageURI(parse);*/
Bitmap bitmap = getBitmap(Environment.getExternalStorageDirectory() + "/aaa.jpg", 320, 480);
imageView.setImageBitmap(bitmap);
}
/**
* 二次采样 返回bitmap
* @param path
* @param width
* @param height
* @return
*/
private Bitmap getBitmap(String path,int width,int height){
BitmapFactory.Options options = new BitmapFactory.Options();
//设置只加载边框
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path,options);
//拿到边框的宽高
int outWidth = options.outWidth;
int outHeight = options.outHeight;
//计算缩放的比例
int scaleX = outWidth/width;
int scaleY = outHeight/height;
//初始化压缩比例
int sampleSize = 1;
if (scaleX>scaleY && scaleY>1){
sampleSize = scaleX;
}else if (scaleY>scaleX && scaleX>1){
sampleSize = scaleY;
}
//第二次,,,根据比例进行压缩,并且压缩图片的质量
options.inJustDecodeBounds = false;
//设置压缩的比例
options.inSampleSize = sampleSize;
//设置图片的质量...Bitmap.Config.RGB_565一个像素点在内存中占有2个字节...Bitmap.Config.ARGB_8888占有四个字节
options.inPreferredConfig = Bitmap.Config.RGB_565;
//以指定的选项解码图片,,,返回
return BitmapFactory.decodeFile(path,options);
}
}
阅读全文
0 0
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- 二次采样
- Bitmap二次采样
- Android28_Bitmap二次采样
- Android bitmap二次采样
- 图片的二次采样
- DMS前后端技术揭秘及最佳实践
- struts2 <s:readio 换行显示
- UVA 401
- 将同一张表的某列字段值全部添加到另一列字段中的sql语句
- Gitlab的安装和使用
- 二次采样
- ES6中熟悉而又陌生的箭头函数 '=>'
- object类中的equals和hashcode方法
- vagrant搭建虚拟机
- 我看绩效考核
- 【tensorflow学习】(一)
- Android中传统蓝牙模块开发小结
- Library
- 获取iOS设备信息