- 浏览: 60681 次
- 性别:
- 来自: 贵阳
文章分类
最新评论
-
feisuzhu:
Don't roll your own.这个是铁律。楼主要是学 ...
AES加解密算法(使用Base64做转码以及辅助加密) -
osacar:
这里DES还是AES???
AES加解密算法(使用Base64做转码以及辅助加密) -
1336224635:
着些不都是16进制表示的颜色吗?android 对颜色有要求吗 ...
android--color.xml
本程序能通过调用android自带的照相机,返回图片到imageview上,并能读取内存卡保存到内存卡上,还能把该图片转换成字符串,以便能上传到服务器。
需要用到的架包是commons-codec-1.5.jar。
<--layout布局-->
<--activity-->
<--权限-->
需要用到的架包是commons-codec-1.5.jar。
<--layout布局-->
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#FFD3D7DF" > <LinearLayout android:id="@+id/takePicturePhone" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginBottom="10dip" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:layout_marginTop="10dip" android:background="@drawable/bg_frame" android:gravity="center_vertical" android:orientation="vertical" android:paddingBottom="2dip" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="10dip" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageButton android:id="@+id/takePhone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/takepicture" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="154dp" > <ImageView android:id="@+id/preview" android:layout_width="wrap_content" android:layout_height="92dp" /> </LinearLayout> </LinearLayout> </LinearLayout>
<--activity-->
package zhang.xue.yi; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.codec.binary.Base64; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; /** * 拍照 * * @author Mr.Z * @time 2012-5-16 * */ public class TakePhotoActivity extends Activity { private Context context = TakePhotoActivity.this; private ImageButton btnTakePhone; private String path; private ImageView imageView; private Bitmap[] bmps = new Bitmap[6]; private Bundle bundle; private LinearLayout takePicturePhone = null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.locationapp); takePicturePhone = (LinearLayout) findViewById(R.id.takePicturePhone); useTakePicture(); } /** * 照相信息采集 */ private void useTakePicture() { imageView = (ImageView) this.findViewById(R.id.preview); btnTakePhone = (ImageButton) findViewById(R.id.takePhone); btnTakePhone.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { // 更改为按下时的背景图片 bmps[0] = BitmapFactory.decodeResource(getResources(), R.drawable.takepicture2); btnTakePhone.setImageBitmap(bmps[0]); } else if (event.getAction() == MotionEvent.ACTION_UP) { // 改为抬起时的图片 bmps[1] = BitmapFactory.decodeResource(getResources(), R.drawable.takepicture); btnTakePhone.setImageBitmap(bmps[1]); } return false; } }); btnTakePhone.setOnClickListener(new Button.OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1); } }); } /** *回显系统照片 */ protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { String sdStatus = Environment.getExternalStorageState(); if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用 Toast.makeText(context, "SD卡不存在!", 1000); return; } bundle = data.getExtras(); Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式 FileOutputStream b = null; File file = new File("/sdcard/channel/"); file.mkdirs();// 创建文件夹 path = "/sdcard/channel/" + formatDatetime(new Date(), "yyyyMMddHHmmss") + ".jpg"; try { System.out.println("path:" + path); b = new FileOutputStream(path); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件 getImageBinary(); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { b.flush(); b.close(); } catch (IOException e) { e.printStackTrace(); } } this.imageView.setImageBitmap(bitmap);// 将图片显示在ImageView里 } } /** * 图片转换成字符串[BASE64] * * @return */ public String getImageBinary() { System.out.println("path--->" + path); try { FileInputStream fis = new FileInputStream(path); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[8192]; int count = 0; while ((count = fis.read(buffer)) >= 0) { baos.write(buffer, 0, count); } String uploadBuffer = new String(Base64.encodeBase64(baos.toByteArray())); fis.close(); System.out.println("图片信息转换成字符串为:---->" + uploadBuffer); return uploadBuffer; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 根据指定的日期格式生成日期时间串 * * @param format 日期格式,如yyyyMMdd * @return dateTimeString */ public static String formatDatetime(Date date, String format) { DateFormat df = new SimpleDateFormat(format); return df.format(date); } }
<--权限-->
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
- TakePhoto.zip (426.7 KB)
- 下载次数: 54
发表评论
-
ContentProvider
2013-04-19 17:12 1089ContentProvider是安卓平台中,在不同应用程序之间 ... -
sqlite使用
2013-04-19 16:52 1249import android.content.Contex ... -
AsyncTask异步下载图片
2013-02-23 10:30 1175这个例子是利用AsyncTask异步下载图片,下载时先将网络图 ... -
我的Android小应用
2012-12-05 12:00 838工作之余,做了一款小android应用,是关于移动业务查询的( ... -
通过百度API获取经纬度
2012-06-29 15:43 1513第一步,先要导入百度API的架包libBMapApiEngin ... -
移动设备开发中WebService的详解
2012-06-17 11:15 1737看到有很多朋友对WebService还不是很了解,在此就详细的 ... -
Android 定位的三种方式
2012-06-11 17:17 1168// 声明LocationManager对象 ... -
android手机获取gps和基站的经纬度地址
2012-05-21 11:02 2089<--界面--> <?xml versi ... -
android上的MD5和RSA的加解密
2012-04-18 20:03 2819import java.io.UnsupportedEnc ... -
android--加载本地联系人
2012-04-09 10:30 1773首先先建布局文件,界面很简单,就是一个搜索框和下面的联系人列表 ... -
android--Handler的使用
2012-04-09 09:56 1802Handler基本概念: Handler主要用 ... -
android应用-创建快捷方式
2012-04-06 14:32 1514我们开发一款软件后,如果手机装的软件过多,去翻的话会很难翻的, ... -
APK的发布
2012-04-05 16:51 13061数字签名 Android系统 ... -
android应用-在线版本升级
2012-04-05 15:42 1665首先配置服务器有关的地址:(如下) public stat ... -
模拟器和真机连接tomcat的区别
2012-04-05 15:39 1215//系统要连接的WebService接口地址 private ...
相关推荐
在Android应用开发中,提供用户调用照相机拍照和选择本地照片是常见的功能。这两个功能的实现涉及到Android系统的相机API、文件系统管理以及权限控制等多个方面。以下将详细阐述这些知识点。 1. 调用照相机拍照: ...
你可以根据需要进一步处理这个图片,比如将其显示在应用的ImageView控件中,或者保存到本地文件系统。 值得注意的是,由于Android系统的权限管理,你需要在`AndroidManifest.xml`文件中添加使用相机的权限: ```...
Delphi XE5 Android 调用照相机获取拍的照片 Delphi XE5 是一款功能强大且流行的开发环境,它提供了许多优秀的功能,包括对 Android 平台的支持。在 Android 平台上,Delphi XE5 提供了许多有用的组件和 API,允许...
网上很多资料描述如何C++编写dll给C#调用,大多都是COPY来的,需要返回字符串的函数,却一个也没有,给初学者带来很大困惑,海量的查资料依然没有收获,终于尝试着自己写,搞成功了!VS2010环境 64位的操作系统测试...
在Android平台上,视频录制并保存到本地是一项常见的功能,尤其对于开发移动应用的开发者来说,了解这个过程至关重要。本文将详细讲解如何实现Android视频录制,并将录制的视频保存到设备的本地存储,尤其是SD卡上。...
添加本地图片和调用系统拍照图片主要是通过调用acitivity跳转startActivityForResult Intent intent int requestCode 方法和activity返回结果onActivityResult int requestCode int resultCode Intent data 方法来...
在Android平台上实现调用系统照相机拍照和录像功能是移动开发中常见的需求,以下内容将详细介绍实现该功能的步骤、方法以及涉及到的相关知识点。 一、基本概念 1. Intent:在Android中,Intent被用来激活不同的...
至此,一个简单的使用Delphi XE5调用Android照相机功能的应用程序已经完成。当你运行此程序并点击"拍照"按钮,设备的相机应用会被启动,拍摄的照片会自动保存到外部存储,并显示在界面上。 需要注意的是,Android...
在Android平台上,调用照相机拍照是常见的功能之一,它涉及到多媒体处理、用户交互以及硬件接口的使用。本文将深入探讨如何在Android应用中实现这一功能,并特别关注对焦优化。 首先,调用照相机拍照的基本流程是...
客户端调用Web Service接口请求图片,服务器端将图片以Base64编码的字符串形式返回,客户端接收到后解码并保存到本地。 7. **错误处理**:在整个过程中,客户端需要捕获可能抛出的异常,如`FileNotFoundException`,...
通过以上步骤,你可以在Android应用中实现调用系统分享功能,让用户能够方便地分享文字和图片到各种社交平台或其他应用。记住,良好的编程实践包括对用户选择的尊重,所以始终提供一个友好的分享体验。
本主题聚焦于一个特定的C#应用:如何将指定的HTML网页转换为图片并保存到本地。这个功能在很多场景下都非常实用,比如网页快照、网页预览或者在没有浏览器环境下展示网页内容。 首先,实现这一功能需要了解几个关键...
Android Studio自定义相机,拍照保存到本地。Android版本:3.5 。主页面中有两个按钮:拍照和图片编辑,只对拍照添加了监听事件。拍照页面也有两个按钮:常规模式和笑脸模式,也只对常规模式添加了监听事件,调用的...
在Android应用开发中,调用系统相机拍照和访问相册是常见的功能,用户可以通过这些功能获取并处理图像。本文将详细讲解如何实现这两个功能,并提供一个名为`TakePhotoDemo`的示例项目作为参考。 首先,调用系统相机...
在这个Demo中,Presenter可以调用Retrofit的服务接口,处理加密字符串的请求和响应,而View(通常是Activity或Fragment)则展示解密后的数据。 为了实现MVP,你需要创建一个接口定义 Presenter 和 View 之间的交互...
想“把数值转换成16进制字符串”,比如0x00000123转换成字符串"00000123",虽然有函数_itoa可以调用,但是返回结果是"123",用sprintf又不甘心,就自己动手写一个函数DWORDToHexString,附带的HexStringToValue有误...
该函数返回一个新的字符串,该字符串包含了原字符串中从 `begin` 到 `end`(包括 `end`)的所有字符。 #### 参数说明 - **Input**: - `string`:原始字符串。 - `begin`:截取的起始索引(包含)。 - `end`:...
Android 安卓调用系统相机拍摄照片一例,在打开相机后自动检测sd是否可用,获取相机返回的数据,并转换为Bitmap图片格式,创建文件夹,把数据写入文件,将图片显示在ImageView里。其实是向android新手演示了整个大致...
在Android平台上,调用系统自带的录像功能并指定保存路径是一项常见的需求,这涉及到多媒体处理、Intent使用以及文件系统的操作。下面将详细讲解如何实现这一功能。 首先,我们需要理解Android的Intent机制。Intent...
标题中的“将list数据通过LitePal保存到本地”是指在Android开发中,使用LitePal库将从服务器获取的list类型的数据存储到本地SQLite数据库中。LitePal是一个轻量级的ORM(Object-Relational Mapping)框架,它使得...