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. Android最简单的使用数组的适配器Adapter
  2. Android将drawable图像转化为二进制字节数组与逆转换
  3. android解析json数组
  4. android ListView 示例1 entries 指定一个数组资源
  5. 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜
  6. Android for opencv(1)android使用opencv基本操作:读写 图片,操作像
  7. Android解析json数组对象
  8. Android中定义数组与使用

随机推荐

  1. Android代码优化----PullToRefresh+unive
  2. android 动态设置控件的高度,使用对应布局
  3. ubuntu android 命令环境下操作sqlite
  4. android 下载资源代码
  5. : Android(安卓)requires compiler compli
  6. android课程表
  7. Android(安卓)WakeLock
  8. 启动uiautomatorviewer后,点击获取模拟器
  9. 《Android开发从零开始》――2.模拟器的
  10. Android反编译工具及其使用