鱼C论坛

 找回密码
 立即注册
查看: 2796|回复: 1

[学习笔记] android 8.3.1

[复制链接]
发表于 2017-10-28 06:33:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 alltolove 于 2017-10-28 21:37 编辑

新建个项目,activity_main.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical">

  6.     <Button
  7.         android:id="@+id/take_photo"
  8.         android:layout_width="match_parent"
  9.         android:layout_height="wrap_content"
  10.         android:text="take photo"/>
  11.     <ImageView
  12.         android:id="@+id/picture"
  13.         android:layout_width="wrap_content"
  14.         android:layout_height="wrap_content"
  15.         android:layout_gravity="center_horizontal"/>

  16. </LinearLayout>
复制代码
mainactivity.java
  1. package com.example.xinwei.cameraalbumtest;

  2. import android.content.Intent;
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.net.Uri;
  6. import android.os.Build;
  7. import android.provider.MediaStore;
  8. import android.support.v4.content.FileProvider;
  9. import android.support.v7.app.AlertDialog;
  10. import android.support.v7.app.AppCompatActivity;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.ImageView;

  15. import java.io.File;
  16. import java.io.FileNotFoundException;
  17. import java.io.IOException;

  18. public class MainActivity extends AppCompatActivity {
  19.     public static final int TAKE_PHOTO=1;
  20.     private ImageView picture;
  21.     private Uri imageUri;
  22.     @Override
  23.     protected void onCreate(Bundle savedInstanceState) {
  24.         super.onCreate(savedInstanceState);
  25.         setContentView(R.layout.activity_main);
  26.         Button takePhoto=(Button)findViewById(R.id.take_photo);
  27.         picture = (ImageView)findViewById(R.id.picture);
  28.         takePhoto.setOnClickListener(new View.OnClickListener() {
  29.             @Override
  30.             public void onClick(View view) {
  31.                 File outputImage = new File(getExternalCacheDir(),"output_image.jpg");
  32.                 if (outputImage.exists()){
  33.                     outputImage.delete();
  34.                 }
  35.                 try {
  36.                     outputImage.createNewFile();
  37.                 } catch (IOException e) {
  38.                     e.printStackTrace();
  39.                 }
  40.                 if (Build.VERSION.SDK_INT>=24){
  41.                     imageUri= FileProvider.getUriForFile(MainActivity.this,"com.example.xinwei.cameraalbumtest.fileprovider",outputImage);
  42.                 }else{
  43.                     imageUri=Uri.fromFile(outputImage);
  44.                 }
  45.                 Intent intent=new Intent("android.media.action.IMAGE_CAPTURE");
  46.                 intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
  47.                 startActivityForResult(intent,TAKE_PHOTO);
  48.             }
  49.         });
  50.     }

  51.     @Override
  52.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  53.         super.onActivityResult(requestCode, resultCode, data);
  54.         switch (requestCode){
  55.             case TAKE_PHOTO:
  56.                 if(resultCode==RESULT_OK){
  57.                     try {
  58.                         Bitmap bitmap= BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));
  59.                         picture.setImageBitmap(bitmap);
  60.                     } catch (FileNotFoundException e) {
  61.                         e.printStackTrace();
  62.                     }
  63.                 }
  64.                 break;
  65.             default:
  66.                 break;
  67.         }
  68.     }
  69. }
复制代码

androidmanifest.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.     package="com.example.xinwei.cameraalbumtest">

  4.     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  5.     <application
  6.         android:allowBackup="true"
  7.         android:icon="@mipmap/ic_launcher"
  8.         android:label="@string/app_name"
  9.         android:roundIcon="@mipmap/ic_launcher_round"
  10.         android:supportsRtl="true"
  11.         android:theme="@style/AppTheme">
  12.         <activity android:name=".MainActivity">
  13.             <intent-filter>
  14.                 <action android:name="android.intent.action.MAIN" />

  15.                 <category android:name="android.intent.category.LAUNCHER" />
  16.             </intent-filter>
  17.         </activity>
  18.         <provider
  19.             android:authorities="com.example.xinwei.cameraalbumtest.fileprovider"
  20.             android:name="android.support.v4.content.FileProvider"
  21.             android:exported="false"
  22.             android:grantUriPermissions="true">
  23.             <meta-data
  24.                 android:name="android.support.FILE_PROVIDER_PATHS"
  25.                 android:resource="@xml/file_paths" />
  26.         </provider>
  27.     </application>

  28. </manifest>
复制代码

在res目录新建xml目录,再里面新建file_paths.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <paths xmlns:android="http://schemas.android.com/apk/res/android">
  3.     <external-path name="my_images" path=""/>
  4. </paths>
复制代码

我们在模拟器上照相有可能因为没摄像头功能所以显示不出来

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-10-28 07:13:48 From FishC Mobile | 显示全部楼层
晕!我忘了把bitmap放进imageview里了,晚上回家再改吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 22:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表