android 裁剪图片大小 控制图片尺寸

用BitmapFactory获取适合屏幕大小的图片 和自带的图片裁剪工具

package com.lin.image; 

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView; 

public class ImageScaleActivity extends Activity  implements View.OnClickListener{
    /** Called when the activity is first created. */
    private Button selectImageBtn;
    private Button cutImageBtn;
    private ImageView imageView;
    private static final int  IMAGE_SELECT=1;
    private static final int  IMAGE_CUT=2;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 

        selectImageBtn=(Button)findViewById(R.id.selectImageBtn);
        cutImageBtn=(Button)findViewById(R.id.catImageBtn);
        imageView=(ImageView)findViewById(R.id.imageView); 

        cutImageBtn.setOnClickListener(this);
        selectImageBtn.setOnClickListener(this); 

    } 

    @Override
    public void onClick(View v) { 

<span style="white-space:pre">        </span>//截取适合屏幕大小的图片
        if(v==selectImageBtn){
        Intent intent=new Intent(Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(intent, IMAGE_SELECT);
        }//一般用于头像等需要设置指定大小
        else if(v==cutImageBtn){
            Intent intent=getImageClipIntent();
            startActivityForResult(intent, IMAGE_CUT);
        }
    } 

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        // TODO Auto-generated method stub
        if(resultCode==RESULT_OK){
            if(requestCode==IMAGE_SELECT){
            Uri imageFileUri =intent.getData();
            int dw=getWindowManager().getDefaultDisplay().getWidth();
            int dh=getWindowManager().getDefaultDisplay().getHeight()/2;
            //已屏幕宽 和一般的高作为图片显示的最大尺寸
            try{
                BitmapFactory.Options factory=new BitmapFactory.Options();
                factory.inJustDecodeBounds=true; //当为true时  允许查询图片不为 图片像素分配内存
                Bitmap bmp=BitmapFactory.decodeStream(getContentResolver()
                        .openInputStream(imageFileUri),null,factory);
                int hRatio=(int)Math.ceil(factory.outHeight/(float)dh); //图片是高度的几倍
                int wRatio=(int)Math.ceil(factory.outWidth/(float)dw); //图片是宽度的几倍
                System.out.println("hRatio:"+hRatio+"  wRatio:"+wRatio);
                //缩小到  1/ratio的尺寸和 1/ratio^2的像素
                if(hRatio>1||wRatio>1){
                    if(hRatio>wRatio){
                        factory.inSampleSize=hRatio;
                    }
                    else
                        factory.inSampleSize=wRatio;
                }
                factory.inJustDecodeBounds=false;
                 bmp=BitmapFactory.decodeStream(getContentResolver()
                        .openInputStream(imageFileUri),null,factory);
                 imageView.setImageBitmap(bmp);
            }catch(Exception ex){ 

            }
            }
            else if(requestCode==IMAGE_CUT){
                Bitmap bmp=intent.getParcelableExtra("data");
                imageView.setImageBitmap(bmp);
            }
        } 

    }
        /**
         * 获取剪切后的图片
         */
        public static Intent getImageClipIntent() { 

            Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
            intent.setType("image/*");
            intent.putExtra("crop", "true");
            intent.putExtra("aspectX", 1);//裁剪框比例
            intent.putExtra("aspectY", 1);
            intent.putExtra("outputX", 80);//输出图片大小
            intent.putExtra("outputY", 80);
            intent.putExtra("return-data", true);
            return intent;
        } 

}

摘自 dikeboy1234的专栏

时间: 2025-01-06 13:43:05

android 裁剪图片大小 控制图片尺寸的相关文章

Android裁剪固定大小头像的功能

转载自: http://www.eoeandroid.com/thread-497277-1-1.html 效果很好,特意转载过来记录一下,加深一下印象. 效果就是 :中间的方框不动,可以拖动图片,选择要裁剪的位置. 源码下载地址:http://download.csdn.net/detail/abc13939746593/7540163 Android裁剪固定大小头像的功能,布布扣,bubuko.com

转-android图片降低图片大小保持图片清晰的方法

http://i.cnblogs.com/EditPosts.aspx?opt=1 android里面对于图片的处理一直是个比较烦人的问题,烦人之处在于一个不小心,就有可能造成OOM. 最近碰到一个关于图片上传的问题,图片上传我们肯定要保证2点,一点是图片的大小尽可能的小,但是图片的清晰度又要有一定的保证,基于此我们有两个方向,一个是将图片缩小,第二个是将图片的质量降低. 对于缩小图片,我们的方法不少,可以裁剪,可以缩放:而另一种降低图片的方法就是降低质量,使用这个方法后图片就会变得模糊,如果我

android图片降低图片大小保持图片清晰的方法

android里面对于图片的处理一直是个比较烦人的问题,烦人之处在于一个不小心,就有可能造成OOM. 最近碰到一个关于图片上传的问题,图片上传我们肯定要保证2点,一点是图片的大小尽可能的小,但是图片的清晰度又要有一定的保证,基于此我们有两个方向,一个是将图片缩小,第二个是将图片的质量降低. 对于缩小图片,我们的方法不少,可以裁剪,可以缩放:而另一种降低图片的方法就是降低质量,使用这个方法后图片就会变得模糊,如果我们降低质量太多,会发现我们的图片都变成了很大的像素点,有过图像分析的都知道,我们的图

iOS 图片大小压缩 图片尺寸处理

#pragma mark- 缩放图片 对大小压缩+(UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize{    //设置图片尺寸    UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize));    [image drawInRect:CGRectMake(0, 0, image.size

html背景图片大小控制

背景图尺寸(数值表示方式): #background-size{ background-size:200px 100px; } 背景图尺寸(百分比表示方式): #background-size{ background-size:30% 60%; } 背景图尺寸(等比扩展图片来填满元素,即cover值): #background-size{ background-size:cover; } 背景图尺寸(等比缩小图片来适应元素的尺寸,即contain值): #background-size{ bac

aspnetcore 图片处理 读取图片大小,处理图片尺寸问题

先写参考网址吧: https://devblogs.microsoft.com/dotnet/net-core-image-processing/ 反正百度是个坑,根本查不到任何东西. 原文地址:https://www.cnblogs.com/davies/p/12229760.html

Android自定义Dialog大小控制

Android应用开发中,无论是出于功能还是增加用户体验,弹出对话框(Dialog)进行一些操作提示是非常必要的.Android系统有自带的各种样式的对话框,但是根据项目需要可能从效果上满足不了需求,只时我们就要自定义对话框. 我们可以自定义Dialog的样式及展示布局,做出我们想要的对话框,但有的时候,我们做出的对话框要么显示太大,要么显得太小,或者是在不同的页面大小不一样,需要做个统一!此时我们就需要对Dialog大小进行控制,今天就简单地讲下这个.贴出代码,注释中有详细说明. 先是我们自定

java关于图片处理修改图片大小

最近做了一个关于图片浏览的内容.因为图片都是一些证件的资料的扫描件所以比较大,对系统的影响也是非常之大的,有很大可能直接把系统干死.那么我是这么处理的,给大家分享一下.如果大家有好的方案的话一定要早点告诉我. 需求简单介绍: 上传文件是压缩包,但是到查看资料的时候压缩包可下载本地看,同时也可以在系统中直接在线浏览. 设计方案 1 营业部用户上传图片文件压缩包文件到综合业务系统tomcat服务器,系统在tomcat服务器将压缩文件解压到系统临时目录. 2 系统分析解压的图片文件(文件名上有分类和序

web前端入门到实战:背景关联和缩写以及插图图片和背景图片的区别

一.背景属性缩写的格式 1.backgound:背景颜色 背景图片 平铺方式 关联方式 定位方式 2.注意点: 这里的所有值都可以省略,但是至少需要一个 3.什么是背景关联方式 默认情况下,背景图片会随着滚动条的滚动而滚动,如果不想这样,那么我们可以修改它们的关联方式 4.格式: background-attachment:值: 值的取值范围: scroll:默认值,会随着滚动条而滚动. fixed:不会随着滚动条滚动而滚动. 5.例子: <!DOCTYPE html> <html la