android 获取手机图片裁剪后分享 2

获取手机图片裁剪后分享。

代码下载地址:http://download.csdn.net/detail/u011324501/9530791

权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

布局代码:main.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:orientation="vertical"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="wind.com.shared.MainActivity">

    <Button
        android:id="@+id/share"
        android:text="分享"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>
代码实现:MainActivity.java

package wind.com.shared;


import android.content.ContentResolver;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import java.io.ByteArrayOutputStream;


public class MainActivity extends AppCompatActivity {

    Button share;
    TextView textView;
    ImageView imageView;
    final static int  CROP_REQUEST_CODE = 3;
    final static int  CAIJIAN = 2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initUI();
    }

    private void initUI() {

        share = (Button)findViewById(R.id.share);
        textView = (TextView)findViewById(R.id.text);
        imageView = (ImageView)findViewById(R.id.image);
        share.setOnClickListener(new shareListener());
    }

    /**
     * 调用手机系统分享
     */
    public class shareListener implements View.OnClickListener{

        @Override
        public void onClick(View view) {

            Intent intent = new Intent(Intent.ACTION_PICK, null);
            intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
             /* 取得相片后返回本画面 */
            startActivityForResult(intent, CAIJIAN);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
           // Uri uri = data.getData();
           // ContentResolver cr = this.getContentResolver();
            Log.d("nsc", "requestCode:" + requestCode + ":" + resultCode);
            try {
             //   Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
               // imageView.setImageBitmap(bitmap);
                if (requestCode==CROP_REQUEST_CODE){
                    Bundle extras = data.getExtras();
                    if (extras!=null){
                        Bitmap photo = extras.getParcelable("data");
                        ByteArrayOutputStream stream = new ByteArrayOutputStream();
                        photo.compress(Bitmap.CompressFormat.JPEG, 75, stream);//设置裁剪图片格式
                        imageView.setImageBitmap(photo);//显示裁剪图片
                        //将bitmap格式转成uri格式
                        Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), photo, null,null));
                        shared(uri);//分享裁剪图片
                    }
                }
                if (requestCode == CAIJIAN){
                    startImageZoom(data.getData());//裁剪图片
                }
            } catch (Exception e) {
                Log.e("Exception", e.getMessage(),e);
            }
        super.onActivityResult(requestCode, resultCode, data);
    }

    /**
     * 分享图片
     * @param uri
     */
    public void shared(Uri uri){
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/*");
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        intent.putExtra(Intent.EXTRA_SUBJECT, "Share");
        intent.putExtra(Intent.EXTRA_TEXT,"xingxingdongmanwang");//分享内容
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(Intent.createChooser(intent, getTitle()));
    }

    /**
     *裁剪图片
     * @param uri
     */
    private void startImageZoom(Uri uri) {
        Intent intent = new Intent("com.android.camera.action.CROP");//调用Android系统自带的一个图片剪裁页面,
        intent.setDataAndType(uri, "image/*");
        intent.putExtra("crop", "true");//
        intent.putExtra("aspectX", 1);//进行修剪// aspectX aspectY 是宽高的比例
        intent.putExtra("aspectY", 1);//
        intent.putExtra("outputX", 100);//outputX outputY 是裁剪图片宽高
        intent.putExtra("outputY", 100);
        intent.putExtra("return-data", true);
        startActivityForResult(intent, CROP_REQUEST_CODE);
    }

}
实现效果:


android 获取手机图片裁剪后分享 2_第1张图片

你可能感兴趣的:(android,图片,分享,截屏,选择手机图片)