关闭

android 相关

449人阅读 评论(0) 收藏 举报
分类:


实例应用之二维码:

扫描与生成,

 这个包你绝对会使用 什么呢?就是 http://code.google.com/p/zxing/downloads/list 对,zxing.

1,生成呢,详细看这个介绍: http://blog.csdn.net/chenshufei2/article/details/8682934

 核心代码

public Bitmap CreateTwoDCode(String content) throws WriterException {
		// 生成二维矩阵,编码时指定大小,不要生成了图片以后再进行缩放,这样会模糊导致识别失败,BarcodeFormat就是你要生成的类型
		BitMatrix matrix = new MultiFormatWriter().encode(content,
				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;
	}


2 扫描,就看这个:  http://www.open-open.com/lib/view/open1344150168061.html 也是用的http://code.google.com/p/zxing/ 所以,针对二维码就是使用zxing了,具体内容自己研究.

二,语音 TTS的使用

TextToSpeech speak = null;// 定义tts

speak = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
   @Override
   public void onInit(int status) {
      speak.speak("你要说的话....", TextToSpeech.QUEUE_ADD, null);     
   }
  });

三、网络通信方面

比较经典的就是AsyncHttpClient网上有源码下载(android-async-http),这个东东,就是一个网络通类,最主要的是采用了android 线程池吧,呵呵,一般初学使用的是AsyncTask确实比较经典。但是也可以自己去写这个网络通信类,AsyncHttpClient,中网络连接线程是Runnable,访问网络完成之后,再通过Handler回调UI线程中的回调函数(接口函数)。但是AsyncTask就只不需要Handler了,我想这更简单一些吧,呵呵。

四、调用相机并保存图片

Intent intent = new Intent(
            MediaStore.ACTION_IMAGE_CAPTURE);// 调用android自带的照相机
startActivityForResult(
            intent,
            RESULT_LOAD_CAME);
void onActivityResult(int requestCode, int resultCode,Intent data){
        String name = DateFormat.format("yyyy_MMdd_hhmmss",Calendar.getInstance(Locale.CHINA)) + ".jpg";
        String dcimCameraPath=Environment.getExternalStorageDirectory().getPath() + "/DCIM/Camera/";
                                    if (dcimCameraPath == null) {
					Toast.makeText(getActivity(), "没有存储空间",
							Toast.LENGTH_LONG).show();
					return;
				}
				FileOutputStream b = null;

				File file = new File(dcimCameraPath);
				file.mkdirs();// 创建文件夹
				String imagePath = dcimCameraPath + name;
				try {
					b = new FileOutputStream(imagePath);
					bitmap.compress(Bitmap.CompressFormat.JPEG, 100,
							b);// 把数据写入文件
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} finally {
					try {
						b.flush();
						b.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
}



 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:58032次
    • 积分:1251
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:43篇
    • 译文:1篇
    • 评论:1条