Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 694|回复: 0

开发交流:Android 调用相册 拍照 实现系统控件缩放 切割图片

[复制链接]

该用户从未签到

发表于 2011-10-24 09:44:21 | 显示全部楼层 |阅读模式
android 下如果做处理图片的软件 可以调用系统的控件 实现缩放切割图片 非常好的效果 今天写了一个demo分享给大家 嘿嘿。





package cn.m15.test;



import java.io.ByteArrayOutputStream;

import java.io.File;

import android.app.Activity;

import android.content.Intent;

import android.graphics.Bitmap;

import android.net.Uri;

import android.os.Bundle;

import android.os.Environment;

import android.provider.MediaStore;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;



public class testActivity extends Activity {



        public static final int NONE = 0;

        public static final int PHOTOHRAPH = 1;// 拍照

        public static final int PHOTOZOOM = 2; // 缩放

        public static final int PHOTORESOULT = 3;// 结果



        public static final String IMAGE_UNSPECIFIED = "image/*";

        ImageView imageView = null;

        Button button0 = null;

        Button button1 = null;



        @Override

        public void onCreate(Bundle savedInstanceState) {

                super.onCreate(savedInstanceState);

                setContentView(R.layout.main);

                imageView = (ImageView) findViewById(R.id.imageID);

                button0 = (Button) findViewById(R.id.btn_01);

                button1 = (Button) findViewById(R.id.btn_02);



                button0.setOnClickListener(new OnClickListener() {

                        @Override

                        public void onClick(View v) {

                                Intent intent = new Intent(Intent.ACTION_PICK, null);

                                intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, IMAGE_UNSPECIFIED);

                                startActivityForResult(intent, PHOTOZOOM);

                        }

                });



                button1.setOnClickListener(new OnClickListener() {



                        @Override

                        public void onClick(View v) {

                                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

                                intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "temp.jpg")));

                                startActivityForResult(intent, PHOTOHRAPH);

                        }

                });

        }



        @Override

        protected void onActivityResult(int requestCode, int resultCode, Intent data) {

                if (resultCode == NONE)

                        return;

                // 拍照

                if (requestCode == PHOTOHRAPH) {

                        //设置文件保存路径这里放在跟目录下

                        File picture = new File(Environment.getExternalStorageDirectory() + "/temp.jpg");

                        startPhotoZoom(Uri.fromFile(picture));

                }

               

                if (data == null)

                        return;

               

                // 读取相册缩放图片

                if (requestCode == PHOTOZOOM) {

                        startPhotoZoom(data.getData());

                }

                // 处理结果

                if (requestCode == PHOTORESOULT) {

                        Bundle extras = data.getExtras();

                        if (extras != null) {

                                Bitmap photo = extras.getParcelable("data");

                                ByteArrayOutputStream stream = new ByteArrayOutputStream();

                                photo.compress(Bitmap.CompressFormat.JPEG, 75, stream);// (0 - 100)压缩文件

                                imageView.setImageBitmap(photo);

                        }



                }



                super.onActivityResult(requestCode, resultCode, data);

        }



        public void startPhotoZoom(Uri uri) {

                Intent intent = new Intent("com.android.camera.action.CROP");

                intent.setDataAndType(uri, IMAGE_UNSPECIFIED);

                intent.putExtra("crop", "true");

                // aspectX aspectY 是宽高的比例

                intent.putExtra("aspectX", 1);

                intent.putExtra("aspectY", 1);

                // outputX outputY 是裁剪图片宽高

                intent.putExtra("outputX", 64);

                intent.putExtra("outputY", 64);

                intent.putExtra("return-data", true);

                startActivityForResult(intent, PHOTORESOULT);

        }

}
复制代码<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        androidrientation="vertical" android:layout_width="fill_parent"

        android:layout_height="fill_parent">

        <TextView android:layout_width="fill_parent"

                android:layout_height="wrap_content" android:text="@string/hello" />

        <ImageView android:id="@+id/imageID"

                android:adjustViewBounds="true" android:maxWidth="50dip"

                android:maxHeight="50dip" android:layout_width="wrap_content"

                android:layout_height="wrap_content" />

        <Button android:id="@+id/btn_01" android:layout_height="50dip"

                        android:text="相册" android:layout_width="150dip"/>

        <Button android:id="@+id/btn_02" android:layout_height="50dip"

                        android:text="拍照" android:layout_width="150dip"/>

</LinearLayout>
复制代码
回复

使用道具 举报

该用户从未签到

发表于 2011-10-24 09:44:33 | 显示全部楼层

Re:开发交

再顶~~~~~~.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 09:44:38 | 显示全部楼层

Re:开发交

为了~~~~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 09:44:41 | 显示全部楼层

Re:开发交

十个下载豆
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 09:44:44 | 显示全部楼层

Re:开发交

支持是必须的
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 09:44:54 | 显示全部楼层

Re:开发交

第八个了吧
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 09:44:58 | 显示全部楼层

Re:开发交

倒数了~~~~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-10 23:04 , Processed in 0.431914 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表