android 加载图片到内存(缩放)
来源:互联网 发布:医疗器械软件研究 编辑:程序博客网 时间:2024/05/02 11:02
package com.example.looding;
import java.io.File;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView iv;
private Button button;
File file;
private String TAG=this.getClass().getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView) findViewById(R.id.iv);
button=(Button) findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
file=new File(Environment.getExternalStorageDirectory().toString()+"");
}*/
//1.获取手机的宽高
WindowManager windowManager=getWindowManager();
int phonewidth=windowManager.getDefaultDisplay().getWidth();
int photoheght=windowManager.getDefaultDisplay().getHeight();
Log.d(TAG, "phonewidth"+phonewidth+"+++++"+"photoheght"+photoheght);
//2.获取图片的宽高
BitmapFactory.Options opts=new Options();//解析位图的附加条件
opts.inJustDecodeBounds=true;//设置为true的话不加载到内存,就是不去解析位图,知识获取它的头部信息。
Bitmap bitmap=BitmapFactory.decodeFile("/mnt/sdcard/heshuo.jpg", opts);
int imagewidth=opts.outWidth;
int imageheight=opts.outHeight;
//3.获取缩放的比例
int dx=imagewidth/phonewidth;
int dy=imageheight/photoheght;
Log.d(TAG, "dx"+dx+"+++++"+"dy"+dy);
int scale=1;
if(dx>dy&&dx>1){//按水平方向缩小
scale=dx;
Log.d(TAG, String.valueOf(scale));
}
if(dy>dx&&dy>1){//按竖直方向缩小
scale=dy;
}
//4.显示图片
opts.inSampleSize=scale;
opts.inJustDecodeBounds=false;
bitmap=BitmapFactory.decodeFile("/mnt/sdcard/heshuo.jpg", opts);
iv.setImageBitmap(bitmap);
}
});
}
}
import java.io.File;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView iv;
private Button button;
File file;
private String TAG=this.getClass().getName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv=(ImageView) findViewById(R.id.iv);
button=(Button) findViewById(R.id.btn);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
/*if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
file=new File(Environment.getExternalStorageDirectory().toString()+"");
}*/
//1.获取手机的宽高
WindowManager windowManager=getWindowManager();
int phonewidth=windowManager.getDefaultDisplay().getWidth();
int photoheght=windowManager.getDefaultDisplay().getHeight();
Log.d(TAG, "phonewidth"+phonewidth+"+++++"+"photoheght"+photoheght);
//2.获取图片的宽高
BitmapFactory.Options opts=new Options();//解析位图的附加条件
opts.inJustDecodeBounds=true;//设置为true的话不加载到内存,就是不去解析位图,知识获取它的头部信息。
Bitmap bitmap=BitmapFactory.decodeFile("/mnt/sdcard/heshuo.jpg", opts);
int imagewidth=opts.outWidth;
int imageheight=opts.outHeight;
//3.获取缩放的比例
int dx=imagewidth/phonewidth;
int dy=imageheight/photoheght;
Log.d(TAG, "dx"+dx+"+++++"+"dy"+dy);
int scale=1;
if(dx>dy&&dx>1){//按水平方向缩小
scale=dx;
Log.d(TAG, String.valueOf(scale));
}
if(dy>dx&&dy>1){//按竖直方向缩小
scale=dy;
}
//4.显示图片
opts.inSampleSize=scale;
opts.inJustDecodeBounds=false;
bitmap=BitmapFactory.decodeFile("/mnt/sdcard/heshuo.jpg", opts);
iv.setImageBitmap(bitmap);
}
});
}
}
0 0
- android 加载图片到内存(缩放)
- 缩放图片并加载到内存中
- 缩放图片并加载到内存中
- Android--加载大分辨率图片到内存
- Android 加载大分辨率图片到内存
- android中加载本地图片到内存
- Android--加载大分辨率图片到内存
- 加载图片到内存
- 加载大图片到内存,进行缩放
- Android:图片不加载到内存获取图片的大小
- Android ZoomImageView手势缩放拖动图片,并将Glide加载的网络图片保存到本地。
- Android中加载大图片OOM(图片缩放)
- 图片加载到内存优化
- Android – 加载图片本缓存到内存与本地
- android,加载一个大的图片到内存
- Android下将图片加载到内存中
- android基础知识:加载较大分辨率图片到手机内存
- android 已省内存方式把图片加载到内存
- struts2,hibernate4,spring3配置时问题汇总及解决办法
- 我的监控世界观(5)--如何在监控中反映业务场景
- windows命令行不能执行pull、fetch、push问题解决办法
- web工程引用其他java工程解决方法
- java并发:FutureTask 和 CountDowmLatch 的使用
- android 加载图片到内存(缩放)
- 常见的PHP设计模式
- NGUI消耗性能分析
- Redis 专题二: RDB 与 AOF 持久化
- 整合 spring 4(包括mvc、context、orm) + mybatis 3 示例
- rabbitmq的启动问题
- java桥接模式
- X86 openWRT 虚拟机编译教程 在ubuntu10中X86 OpenWRT的源码编译
- Cloudera-Manager修改集群的IP