android自定义头像上传,android裁切图片之用于头像上传

嘛话都不说,直接贴代码,也是在网上找的代码copy出来的!

页面代码

encoding="utf-8"?>

android:orientation="vertical"

android:layout_width="fill_parent"

android:background="@color/white"

android:layout_height="fill_parent">

android:background="@drawable/msg_titbg"

android:layout_width="fill_parent"

android:layout_height="40dp"

android:gravity="center"

android:textColor="@color/black" android:id="@+id/titleName"

android:text="修改用户头像"/>

android:layout_width="fill_parent" android:fadingEdge="none" >

android:layout_width="fill_parent" android:paddingLeft="5.0sp"

android:paddingRight="5.0sp"

android:layout_height="wrap_content"

android:orientation="vertical" android:gravity="center"

android:background="@color/white"

android:fadingEdge="none"

android:paddingTop="70dip">

android:layout_width="fill_parent"

android:layout_height="fill_parent" android:orientation="vertical"

android:gravity="center">

android:id="@+id/userImage" android:layout_width="150px"

android:layout_height="150px"

android:src="@drawable/icon_selfinfo"/>

 

android:layout_width="fill_parent"

android:orientation="vertical"

android:layout_height="wrap_content"

android:gravity="center"

android:paddingTop="30dp">

android:layout_width="80dp"

android:layout_height="wrap_content" android:background="@drawable/login_btn"

android:text="上传"

android:id="@+id/btn_savaCmt"/>

后台代码

package com.gec.android.activity;

import java.io.ByteArrayOutputStream;

import java.io.File;

import org.json.JSONObject;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.graphics.Bitmap;

import android.graphics.drawable.BitmapDrawable;

import android.graphics.drawable.Drawable;

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;

import android.widget.Toast;

public class PicCutActivity extends Activity{

ProcessInfoUtil processInfoUtil = new

ProcessInfoUtil();//底层帮助类与服务器交互

SharedPreferences settings;//用户登录信息

ImageView ib=null;

private byte[] bytes;//得到了裁切后图片的byte[] 在用base64

encodeToString下上传至服务器

boolean isUpload=false;

@Override

protected void onCreate(Bundle

savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.piccut);

settings =

getSharedPreferences("SETTING_Infos", 0);

ib = (ImageView)

findViewById(R.id.userImage);

String result =

processInfoUtil.getCurrentUser();

Drawable img = null;

JSONObject jb = null;

try {

jb = new

JSONObject(result.toString());

img =

ImageUtil.getImgDrawable(getApplicationContext(),

jb.getString("currentUserLogo"), ib);

if (img !=

null || "".equals(img)) {

ib.setImageDrawable(img);

}

} catch (Exception se)

{

se.printStackTrace();

}

ib.setOnClickListener(new

OnClickListener() {

@Override

public void

onClick(View v) {

ShowPickDialog(); }

});

final Button btn = (Button)

findViewById(R.id.btn_savaCmt);

btn.setOnClickListener(new

OnClickListener() {

@Override

public void

onClick(View v) {

btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.login_btn_on));

if

(isUpload) {

ImageUtil

util = new ImageUtil();

String

name = settings.getString("NAME", "");

boolean

isSuc = util.uploadFile(name, "", bytes);

if

(isSuc) {

Toast.makeText(getApplicationContext(),

" 图像上传成功!", 1000).show();

}

else {

Toast.makeText(getApplicationContext(),

" 图像上传失败!", 1000).show();

}

Intent

intent = new Intent();

intent.setClass(PicCutActivity.this,

GecAndroidActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

// 清除activity

startActivity(intent);

finish();

}

else {

Toast.makeText(getApplicationContext(),

"请先选择新的头像!", 1000).show();

}

}

});

}

private void ShowPickDialog()

{ new AlertDialog.Builder(this) .setTitle("设置头像...") .setNegativeButton("相册", new DialogInterface.OnClickListener()

{ public void onClick(DialogInterface dialog, int which)

{ dialog.dismiss(); Intent

intent = new Intent(Intent.ACTION_PICK,

null);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,可以使用自定义视图和画布来实现图像裁剪。 首先,创建一个自定义的视图类,并在其中重写onDraw()方法。在onDraw()方法中,使用画布(Canvas)对象绘制需要裁剪的图像。然后,使用画布对象的clipRect()方法来指定需要裁剪的区域。最后,使用画布对象的drawBitmap()方法来绘制裁剪后的图像。 以下是一个简单的示例代码: ```java public class CustomImageView extends View { private Bitmap mBitmap; public CustomImageView(Context context, AttributeSet attrs) { super(context, attrs); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 绘制原始图像 canvas.drawBitmap(mBitmap, 0, 0, null); // 裁剪区域 Rect rect = new Rect(100, 100, 300, 300); canvas.clipRect(rect); // 绘制裁剪后的图像 canvas.drawBitmap(mBitmap, 0, 0, null); } } ``` 在这个示例代码中,我们首先使用BitmapFactory类从资源文件中加载一个图像。然后,在onDraw()方法中,我们使用Canvas对象绘制该图像。接下来,我们创建一个矩形对象,指定需要裁剪的区域。然后,我们使用Canvas对象的clipRect()方法将裁剪区域设置为该矩形。最后,我们再次使用Canvas对象绘制图像,此时只会绘制裁剪区域内的部分。 当然,这只是一个简单的示例。你可以根据自己的需求和想象力来实现更复杂的图像裁剪效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值