package com.example.sharedemo;

import com.google.zxing.WriterException;

import android.net.Uri;

import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class ShareActivity extends Activity {

private Button btnshare;

private Context context;

private String msg;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_share);

context = ShareActivity.this;

msg = "Test share";

btnshare = (Button) findViewById(R.id.button1);

btnshare.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

shareMemo(context, msg);

}

});

}

public static void shareMemo(final Context context, final String uid) {

new AlertDialog.Builder(context)

.setTitle(context.getString(R.string.selectsharemode))

.setItems(

context.getResources()

.getStringArray(R.array.sharemode),

new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog,

int which) {

// TODO Auto-generated method stub

if (which == 0) {

Intent it = new Intent(Intent.ACTION_SEND);

it.putExtra(Intent.EXTRA_TEXT, uid);

// it.setType("audio

public Bitmap Create2DCode(String str) throws WriterException {

//生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败

qrcode = str;

BitMatrix matrix = new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, 300, 300);

int width = matrix.getWidth();

int height = matrix.getHeight();

//二维矩阵转为一维像素数组,也就是一直横着排了

int[] pixels = new int[width * height];

for (int y = 0; y < height; y++) {

for (int x = 0; x < width; x++) {

if(matrix.get(x, y)){

pixels[y * width + x] = 0xff000000;

}

}

}

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);

//通过像素数组生成bitmap,具体参考api

bitmap.setPixels(pixels, 0, width, 0, 0, width, height);

return bitmap;

}

public Uri WriteBitmap(Bitmap bm)

{

String filepath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + qrcode + ".png";

File file = new File(filepath);

try {

if(!file.createNewFile()) {

System.out.println("File already exists");

}

} catch (IOException ex) {

System.out.println(ex);

}

try {

FileOutputStream out = new FileOutputStream(file);

bm.compress(Bitmap.CompressFormat.PNG, 90, out);

out.flush();

out.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return Uri.fromFile(file);

}

}

//少不了权限

//strings.xml

请选择分享模式

文字分享UID

图片分享UID

另外需要导入core.jar库文件

这个可从网上下载


更多相关文章

  1. 跨平台CMake配置,for windows ios android
  2. android @+id 含义
  3. ANDROID轻量级JSON序列化和反序列化[转]
  4. ReactNative 命令生成bundle文件
  5. Android(安卓)取出 图片以字节形式存放到数据库的数据,并将图片显
  6. 【Android增量升级系列_02】 浅谈Android增量更新服务端的实现方
  7. android下不规则多边形填充位图
  8. Ndk(jni)调用第三方的so库
  9. 一步一步学习androidNDK编程(java给c传递数据)

随机推荐

  1. Android(安卓)类加载机制以及基于类加载
  2. Android利用Jpush实现异地登陆下线
  3. Android应用程序获取ROOT权限的方法
  4. android开机动画
  5. Android(安卓)集成百度地图实现设备定位
  6. 利用AS(3.0)工具将工程打包成jar
  7. Android系统源码阅读(18):Android(安卓)应用
  8. Android(安卓)属性动画(Property Animatio
  9. android表格布局
  10. Android(安卓)程序员指南 PDF下载