android 一次拍多张图片大小,Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等(示例代码)...

package com.king.photo.activity;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.content.Context;

import android.content.Intent;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Color;

import android.graphics.drawable.BitmapDrawable;

import android.graphics.drawable.ColorDrawable;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.provider.MediaStore;

import android.util.Log;

import android.view.Gravity;

import android.view.KeyEvent;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup;

import android.view.ViewGroup.LayoutParams;

import android.view.animation.AnimationUtils;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.GridView;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.PopupWindow;

import android.widget.RelativeLayout;

import com.king.photo.R;

import com.king.photo.util.Bimp;

import com.king.photo.util.FileUtils;

import com.king.photo.util.ImageItem;

import com.king.photo.util.PublicWay;

import com.king.photo.util.Res;

//首页面activity

public class MainActivity extends Activity {

private GridView noScrollgridview;

private GridAdapter adapter;

private View parentView;

private PopupWindow pop = null;

private LinearLayout ll_popup;

public static Bitmap bimap ;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

Res.init(this);

bimap = BitmapFactory.decodeResource(

getResources(),

R.drawable.icon_addpic_unfocused);

PublicWay.activityList.add(this);

parentView = getLayoutInflater().inflate(R.layout.activity_selectimg, null);

setContentView(parentView);

Init();

}

public void Init() {

pop = new PopupWindow(MainActivity.this);

View view = getLayoutInflater().inflate(R.layout.item_popupwindows, null);

ll_popup = (LinearLayout) view.findViewById(R.id.ll_popup);

pop.setWidth(LayoutParams.MATCH_PARENT);

pop.setHeight(LayoutParams.WRAP_CONTENT);

pop.setBackgroundDrawable(new BitmapDrawable());

pop.setFocusable(true);

pop.setOutsideTouchable(true);

pop.setContentView(view);

RelativeLayout parent = (RelativeLayout) view.findViewById(R.id.parent);

Button bt1 = (Button) view

.findViewById(R.id.item_popupwindows_camera);

Button bt2 = (Button) view

.findViewById(R.id.item_popupwindows_Photo);

Button bt3 = (Button) view

.findViewById(R.id.item_popupwindows_cancel);

parent.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

pop.dismiss();

ll_popup.clearAnimation();

}

});

bt1.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

photo();

pop.dismiss();

ll_popup.clearAnimation();

}

});

bt2.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Intent intent = new Intent(MainActivity.this,

AlbumActivity.class);

startActivity(intent);

overridePendingTransition(R.anim.activity_translate_in, R.anim.activity_translate_out);

pop.dismiss();

ll_popup.clearAnimation();

}

});

bt3.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

pop.dismiss();

ll_popup.clearAnimation();

}

});

noScrollgridview = (GridView) findViewById(R.id.noScrollgridview);

noScrollgridview.setSelector(new ColorDrawable(Color.TRANSPARENT));

adapter = new GridAdapter(this);

adapter.update();

noScrollgridview.setAdapter(adapter);

noScrollgridview.setOnItemClickListener(new OnItemClickListener() {

public void onItemClick(AdapterView> arg0, View arg1, int arg2,

long arg3) {

if (arg2 == Bimp.tempSelectBitmap.size()) {

Log.i("ddddddd", "----------");

ll_popup.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.activity_translate_in));

pop.showAtLocation(parentView, Gravity.BOTTOM, 0, 0);

} else {

Intent intent = new Intent(MainActivity.this,

GalleryActivity.class);

intent.putExtra("position", "1");

intent.putExtra("ID", arg2);

startActivity(intent);

}

}

});

}

@SuppressLint("HandlerLeak")

public class GridAdapter extends BaseAdapter {

private LayoutInflater inflater;

private int selectedPosition = -1;

private boolean shape;

public boolean isShape() {

return shape;

}

public void setShape(boolean shape) {

this.shape = shape;

}

public GridAdapter(Context context) {

inflater = LayoutInflater.from(context);

}

public void update() {

loading();

}

public int getCount() {

if(Bimp.tempSelectBitmap.size() == 9){

return 9;

}

return (Bimp.tempSelectBitmap.size() + 1);

}

public Object getItem(int arg0) {

return null;

}

public long getItemId(int arg0) {

return 0;

}

public void setSelectedPosition(int position) {

selectedPosition = position;

}

public int getSelectedPosition() {

return selectedPosition;

}

public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder = null;

if (convertView == null) {

convertView = inflater.inflate(R.layout.item_published_grida,

parent, false);

holder = new ViewHolder();

holder.image = (ImageView) convertView

.findViewById(R.id.item_grida_image);

convertView.setTag(holder);

} else {

holder = (ViewHolder) convertView.getTag();

}

if (position ==Bimp.tempSelectBitmap.size()) {

holder.image.setImageBitmap(BitmapFactory.decodeResource(

getResources(), R.drawable.icon_addpic_unfocused));

if (position == 9) {

holder.image.setVisibility(View.GONE);

}

} else {

holder.image.setImageBitmap(Bimp.tempSelectBitmap.get(position).getBitmap());

}

return convertView;

}

public class ViewHolder {

public ImageView image;

}

Handler handler = new Handler() {

public void handleMessage(Message msg) {

switch (msg.what) {

case 1:

adapter.notifyDataSetChanged();

break;

}

super.handleMessage(msg);

}

};

public void loading() {

new Thread(new Runnable() {

public void run() {

while (true) {

if (Bimp.max == Bimp.tempSelectBitmap.size()) {

Message message = new Message();

message.what = 1;

handler.sendMessage(message);

break;

} else {

Bimp.max += 1;

Message message = new Message();

message.what = 1;

handler.sendMessage(message);

}

}

}

}).start();

}

}

public String getString(String s) {

String path = null;

if (s == null)

return "";

for (int i = s.length() - 1; i > 0; i++) {

s.charAt(i);

}

return path;

}

protected void onRestart() {

adapter.update();

super.onRestart();

}

private static final int TAKE_PICTURE = 0x000001;

public void photo() {

Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(openCameraIntent, TAKE_PICTURE);

}

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

switch (requestCode) {

case TAKE_PICTURE:

if (Bimp.tempSelectBitmap.size() 

String fileName = String.valueOf(System.currentTimeMillis());

Bitmap bm = (Bitmap) data.getExtras().get("data");

FileUtils.saveBitmap(bm, fileName);

ImageItem takePhoto = new ImageItem();

takePhoto.setBitmap(bm);

Bimp.tempSelectBitmap.add(takePhoto);

}

break;

}

}

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

for(int i=0;i

if (null != PublicWay.activityList.get(i)) {

PublicWay.activityList.get(i).finish();

}

}

System.exit(0);

}

return true;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值