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. 箭头函数的基础使用
  2. android Parcelable序列化数组String[]
  3. Android(安卓)gallery与BaseaDapter的使用
  4. java 后端实现WebSocket学习篇和客户端Android(安卓)通信
  5. AutoCompleteTextView的基本使用
  6. Android在SD卡上的文件读写
  7. Android(安卓)Studio NDK开发浅谈
  8. Android如何防止异常奔溃以及拿到crash日志,处理线上问题定位
  9. 生成android的bks证书

随机推荐

  1. android中使用tmf框架插件化开发的问题
  2. Win32上不装Cygwin使用NDK编译
  3. Android(安卓)OpenGL ES学习笔记之添加纹
  4. Bluetooth 4.0 mio alpha watch 心率监护
  5. JPush Android(安卓)推送如何区分开发、
  6. 搜集整理的一些博客导航
  7. 深入探索编译插桩技术(四、ASM 探秘)
  8. 一些Android学习资源
  9. Android使用mqtt协议实现消息收发
  10. Android应用程序之数据存储(一)