android三方类库

来源:互联网 发布:亚马逊读书软件readme 编辑:程序博客网 时间:2024/05/16 08:11

网络请求:android-async-http


ViewPage添加tab标间:ViewPagerIndicator


shareSdk一键分享:http://www.mob.com/#/index


科大讯飞:语音识别


Zxing:二维码生成和识别 handleDecode

http://code.google.com/p/zxing/

生成二维码:二维码其实是

package com.androidzhang.zxingframe;import java.util.Hashtable; import android.graphics.Bitmap;import android.util.Log;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.google.zxing.WriterException;import com.google.zxing.common.BitMatrix;import com.google.zxing.qrcode.QRCodeWriter;public class BitmapUtil {/** * 生成一个二维码图像 *  * @param url *            传入的字符串,通常是一个URL * @param QR_WIDTH *            宽度(像素值px) * @param QR_HEIGHT *            高度(像素值px) * @return */public static final Bitmap create2DCoderBitmap(String url, int QR_WIDTH, int QR_HEIGHT) {try {// 判断URL合法性if (url == null || "".equals(url) || url.length() < 1) {return null;}Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();hints.put(EncodeHintType.CHARACTER_SET, "utf-8");// 图像数据转换,使用了矩阵转换BitMatrix bitMatrix = new QRCodeWriter().encode(url,BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints);int[] pixels = new int[QR_WIDTH * QR_HEIGHT];// 下面这里按照二维码的算法,逐个生成二维码的图片,// 两个for循环是图片横列扫描的结果for (int y = 0; y < QR_HEIGHT; y++) {for (int x = 0; x < QR_WIDTH; x++) {if (bitMatrix.get(x, y)) {pixels[y * QR_WIDTH + x] = 0xff000000;} else {pixels[y * QR_WIDTH + x] = 0xffffffff;}}}// 生成二维码图片的格式,使用ARGB_8888Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT,Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);// 显示到一个ImageView上面// sweepIV.setImageBitmap(bitmap);return bitmap;} catch (WriterException e) {Log.i("log", "生成二维码错误" + e.getMessage());return null;}}private static final int BLACK = 0xff000000;/** * 生成一个二维码图像  *  * @param url *            传入的字符串,通常是一个URL * @param widthAndHeight *           图像的宽高 * @return */public static Bitmap createQRCode(String str, int widthAndHeight) throws WriterException {        //判断URL合法性        if (str == null || "".equals(str) || str.length() < 1 || widthAndHeight<1)        {            return null;        }Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();hints.put(EncodeHintType.CHARACTER_SET, "utf-8");BitMatrix matrix = new MultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight);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] = BLACK;}}}Bitmap bitmap = Bitmap.createBitmap(width, height,Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels, 0, width, 0, 0, width, height);return bitmap;}}


二维码识别:

    <SurfaceView        android:id="@+id/preview_view"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center" />    <com.zxing.view.ViewfinderView        android:id="@+id/viewfinder_view"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />

/** * Handler scan result  *  * @param result * @param barcode *            获取结果 */public void handleDecode(Result result, Bitmap barcode) {inactivityTimer.onActivity();playBeepSoundAndVibrate();String resultString = result.getText();// FIXMEif (resultString.equals("")) {Toast.makeText(CaptureActivity.this, "扫描失败!", Toast.LENGTH_SHORT).show();} else {// System.out.println("Result:"+resultString);Intent resultIntent = new Intent();Bundle bundle = new Bundle();bundle.putString("result", resultString);resultIntent.putExtras(bundle);this.setResult(RESULT_OK, resultIntent);}CaptureActivity.this.finish();}


草料二维码:在线生成二维码

SlidingMenu:


    1. 导入SlidingMenu_lib库
    2. 继承修改Activity为 SlidingXXXActivity
    3. 设置主界面 
    //1.设置主界面
setContentView(R.layout.activity_main);
    4. 设置左侧菜单界面
    //2.设置左侧界面
setBehindContentView(R.layout.activity_left);
    5. 设置右侧菜单
    SlidingMenu menu = getSlidingMenu();

//设置右边侧滑菜单的界面
menu.setSecondaryMenu(R.layout.activity_right);
    6. 设置菜单模式
        三种:left 只有左侧  right 只有右侧 left_right 左右侧都有:menu.setMode(SlidingMenu.LEFT);// 只设置左侧可以滑动
    7. 设置菜单触摸方式
        三种: TOUCHMODE_FULLSCREEN 任何位置 ,TOUCHMODE_MARGIN 边界才可以拖动,TOUCHMODE_NONE不可以拖动

menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

    8.设置主界面左侧滑动后剩余的空间位置

menu.setBehindOffset(200);// 设置主界面剩余的位置










0 0
原创粉丝点击