发布于 2016-02-18 05:04:52 | 171 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Android移动端操作系统

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。


Android中实现拍照有两种方法,一种是调用系统自带的相机,还有一种是自己用Camera类和其他相关类实现相机功能,这种方法定制度比较高,需要的朋友可以了解下
Android中实现拍照有两种方法,一种是调用系统自带的相机,然后使用其返回的照片数据。 还有一种是自己用Camera类和其他相关类实现相机功能,这种方法定制度比较高,洗染也比较复杂,一般平常的应用只需使用第一种即可。
用Intent启动相机的代码
 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 1);拍完照后就可以在onActivityResult(int requestCode, int resultCode, Intent data)中获取到Bitmap对象了。Bitmap bitmap = (Bitmap) data.getExtras().get("data"); 

要将图像存储到sd卡之前最好先检查一下sd卡是否可用
 
String sdStatus = Environment.getExternalStorageState(); 
if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用 
Log.v("TestFile", 
"SD card is not avaiable/writeable right now."); 
return; 
} 

以下代码可以实现将图像文件存到“sdcard/myImage/”文件夹下,名称为“111.jpg”
 
File file = new File("/sdcard/myImage/"); 
file.mkdirs();// 创建文件夹 
String fileName = "/sdcard/myImage/111.jpg"; 
try { 
b = new FileOutputStream(fileName); 
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件 
} catch (FileNotFoundException e) { 
e.printStackTrace(); 
} finally { 
try { 
b.flush(); 
b.close(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 

另外要注意的是读写sd卡文件必须首先要在Mainifest.xml文件中配置权限:
 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 

一个demo,实现调用系统相机拍照,将其显示在屏幕上,并且存到sd卡。
完整代码如下
MyCaremaActivity.java
 
package barry.android.c; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.os.Environment; 
import android.provider.MediaStore; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageView; 
public class MyCaremaActivity extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
Button button = (Button) findViewById(R.id.button); 
button.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, 1); 
} 
}); 
} 
@Override 
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是否可用 
Log.v("TestFile", 
"SD card is not avaiable/writeable right now."); 
return; 
} 
Bundle bundle = data.getExtras(); 
Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式 
FileOutputStream b = null; 
File file = new File("/sdcard/myImage/"); 
file.mkdirs();// 创建文件夹 
String fileName = "/sdcard/myImage/111.jpg"; 
try { 
b = new FileOutputStream(fileName); 
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件 
} catch (FileNotFoundException e) { 
e.printStackTrace(); 
} finally { 
try { 
b.flush(); 
b.close(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 
((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);// 将图片显示在ImageView里 
} 
} 
} 

main.xml
 
<?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:orientation="vertical" > 
<Button 
android:id="@+id/button" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="点击启动相机" /> 
<ImageView 
android:id="@+id/imageView" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#999999" /> 
</LinearLayout> 

AndroidMainifest.xml
 
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="barry.android.c" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-sdk android:minSdkVersion="7" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> 
<application 
android:icon="@drawable/ic_launcher" 
android:label="@string/app_name" > 
<activity 
android:label="@string/app_name" 
android:name=".MyCaremaActivity" > 
<intent-filter > 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity> 
</application> 
</manifest> 


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务