Created
June 22, 2014 07:09
-
-
Save zhaochunqi/09f3a20e97f55ceb3cde to your computer and use it in GitHub Desktop.
Android调用系统的Photos进行拍照
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:paddingLeft="@dimen/activity_horizontal_margin" | |
android:paddingRight="@dimen/activity_horizontal_margin" | |
android:paddingTop="@dimen/activity_vertical_margin" | |
android:paddingBottom="@dimen/activity_vertical_margin" | |
tools:context="cn.xuanr.testcarmera.app.MainActivity"> | |
<ImageView | |
android:id="@+id/photo_user_take" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent"/> | |
<Button | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:text="点我启动相机" | |
android:id="@+id/button" | |
android:onClick="take_photos" | |
android:layout_alignParentBottom="true" | |
android:layout_centerHorizontal="true"/> | |
</RelativeLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.support.v7.app.ActionBarActivity; | |
import android.util.Log; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.widget.ImageView; | |
import java.io.File; | |
import java.io.FileNotFoundException; | |
import java.io.FileOutputStream; | |
import java.io.IOException; | |
public class MainActivity extends ActionBarActivity { | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
} | |
@Override | |
public boolean onCreateOptionsMenu(Menu menu) { | |
// Inflate the menu; this adds items to the action bar if it is present. | |
getMenuInflater().inflate(R.menu.main, menu); | |
return true; | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
// Handle action bar item clicks here. The action bar will | |
// automatically handle clicks on the Home/Up button, so long | |
// as you specify a parent activity in AndroidManifest.xml. | |
int id = item.getItemId(); | |
if (id == R.id.action_settings) { | |
return true; | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
public void take_photos(View view) { | |
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.photo_user_take)).setImageBitmap(bitmap);// 将图片显示在ImageView里 | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment