package com.partynetwork.iparty.site;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Locale;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.partynetwork.dataprovider.util.ActionUtil;
import com.partynetwork.dataprovider.util.Util;
import com.partynetwork.iparty.R;
import com.partynetwork.iparty.app.AppContext;
import com.partynetwork.iparty.app.common.BitmapManager;
import com.partynetwork.iparty.contacts.ContactsUserInfoView;
import com.partynetwork.myview.mytoast.MenuBottomPop;
import com.baidu.mobstat.StatService;
import com.google.zxing.WriterException;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import com.zxing.encoding.EncodingHandler;
public class SiteUserInfoQRActivity extends Activity {
/**
* 路径
*/
private static final String FILE = Environment
.getExternalStorageDirectory().getPath() + "/iparty/";
/**
* 二维码图片
*/
@ViewInject(R.id.qr_iamge)
private ImageView qrImage;
/**
* 用户基本信息
*/
@ViewInject(R.id.user_info)
private LinearLayout layout;
/** 当前的二维码图片 */
private Bitmap bitmap = null;
/**
* 底部的弹窗
*/
private MenuBottomPop menuBottonPop;
/*
* 更多功能列表
*/
private String moreArray[] = new String[] { "保存二维码到手机" };
private BitmapManager bitmapManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.site_info_qr);
ViewUtils.inject(this);
bitmapManager=new BitmapManager();
init();
}
/**
* 初始化
*/
private void init() {
AppContext context = (AppContext) this.getApplication();
// 二维码名片
bitmap = getQR(this,
ActionUtil.Capture.QR_PREFIX + "user_" + context.getLoginUid());
qrImage.setImageBitmap(bitmap);
ContactsUserInfoView userView = new ContactsUserInfoView(this,bitmapManager);
userView.setInfo(context.getLoginInfo());
layout.addView(userView);
menuBottonPop = new MenuBottomPop(this, moreArray, clickListener);
}
/**
* 生成二维码图案
*
* @param str
*/
public static Bitmap getQR(Context context, String str) {
Bitmap bitmap = null;
try {
if (!str.equals("")) {
// 根据字符串生成二维码图片并返回,第二个参数为图片的大小
bitmap = EncodingHandler.createQRCode(str,
Util.getScreenWidth(context) - 50);
} else {
Toast.makeText(context, "内容不能为空!", Toast.LENGTH_SHORT).show();
}
} catch (WriterException e) {
e.printStackTrace();
}
return bitmap;
}
/**
* 事件监听
*
* @param view
*/
@OnClick({ R.id.menu_head_left, R.id.menu_head_right })
public void onClick(View view) {
switch (view.getId()) {
case R.id.menu_head_left:
// 关闭
finish();
break;
case R.id.menu_head_right:
// 更多
menuBottonPop.showAtLocation(layout);
break;
default:
break;
}
}
/**
* 底部弹窗的监听
*/
private OnClickListener clickListener = new OnClickListener() {
public void onClick(View v) {
if (v.getTag().equals(moreArray[0])) {
SimpleDateFormat sDateFormat = new SimpleDateFormat(
"yyyy年MM月dd日hh时mm分ss秒", Locale.CHINA);
String date = sDateFormat.format(new java.util.Date());
saveBitmap(date + "iparty二维码", bitmap);
}
menuBottonPop.dismiss();
}
};
/**
* 保存图片到sd卡 保存为.png 方法二
* */
public void saveBitmap(String name, Bitmap bitmap) {
File file = new File(FILE);
File dir = new File(FILE + name + ".png");
try {
if (!file.exists()) {
// 按照指定的路径创建文件夹
file.mkdirs();
}
FileOutputStream fOut = new FileOutputStream(dir);
if (bitmap.compress(CompressFormat.PNG, 100, fOut)) {
fOut.flush();
fOut.close();
Util.showMsg(SiteUserInfoQRActivity.this,
"已保存当前二维码到" + dir.getCanonicalPath());
} else {
Util.showMsg(SiteUserInfoQRActivity.this, "保存失败!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onResume() {
StatService.onResume(this);
super.onResume();
}
@Override
protected void onPause() {
StatService.onPause(this);
super.onPause();
}
}