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(); } }