質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

0回答

630閲覧

Android Studio カメラアプリで撮った写真を常時アプリ内に表示させたい

creatorsGame

総合スコア18

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/11/08 12:17

この本に書いてあるカメラアプリを作ったのですが、下の画像のように撮った写真をカメラアプリのImageViewにアプリを閉じても、またアプリを開いたときに表示させるようにしたいです。
保存した画像ファイルを呼び出すのにはどうすれば良いでしょうか?

すみません、プログラムコードは少し長いですが、下に載せておきます。
イメージ説明
プログラムコード
パッケージ名はtestにしています。
activity_main.xml

java

1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="http://schemas.android.com/tools" 5 android:layout_width="match_parent" 6 android:layout_height="match_parent" 7 tools:context=".MainActivity"> 8 9 <ImageView 10 android:id="@+id/ivCamera" 11 android:layout_width="match_parent" 12 android:layout_height="match_parent" 13 android:onClick="onCameraImageClick" 14 android:scaleType="center" 15 app:layout_constraintBottom_toBottomOf="parent" 16 app:layout_constraintEnd_toEndOf="parent" 17 app:layout_constraintStart_toStartOf="parent" 18 app:layout_constraintTop_toTopOf="parent" 19 app:srcCompat="@android:drawable/ic_menu_camera" /> 20 21</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

java

1package com.test.cameraapp; 2 3import androidx.appcompat.app.AppCompatActivity; 4import androidx.core.app.ActivityCompat; 5 6import android.Manifest; 7import android.content.ContentResolver; 8import android.content.ContentValues; 9import android.content.Intent; 10import android.content.pm.PackageManager; 11import android.graphics.Bitmap; 12import android.net.Uri; 13import android.os.Bundle; 14import android.provider.MediaStore; 15import android.view.View; 16import android.widget.ImageView; 17 18import java.text.SimpleDateFormat; 19import java.util.Date; 20 21public class MainActivity extends AppCompatActivity { 22 /** 23 * 保存された画像のURI 24 */ 25 private Uri _imageUri; 26 @Override 27 protected void onCreate(Bundle savedInstanceState) { 28 super.onCreate(savedInstanceState); 29 setContentView(R.layout.activity_main); 30 31 } 32 33 @Override 34 public void onActivityResult(int requestCOde, int resultCode, Intent data){ 35 //カメラアプリとの連携からの戻りで勝つ撮影成功の場合。 36 if(requestCOde == 200 && resultCode == RESULT_OK) { 37 //画像を表示するImageViewを取得。 38 ImageView ivCamera = findViewById(R.id.ivCamera); 39 //フィールドの画像URIをImageViewに設定。 40 ivCamera.setImageURI(_imageUri); 41 } 42 } 43 /** 44 * 画像部分がタップされた時の処理メソッド 45 */ 46 public void onCameraImageClick(View view){ 47 //WRITE_EXTERNAL_STORAGEの許可を求めるダイアログを表示 48 if(ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE 49 ) != PackageManager.PERMISSION_GRANTED){ 50 //WRITE_EXTERNAL_STORAGEの許可を求めるダイアログを表示 51 //その際、リクエストコードを2000に設定。 52 String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE}; 53 ActivityCompat.requestPermissions(this,permissions,2000); 54 return; 55 } 56 57 //日時のデータを[yyy...]の形式に成型するフォーマッタを生成 58 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); 59 //現在の日時を取得 60 Date now = new Date(System.currentTimeMillis()); 61 //取得した日時データを[yyyyMMddHHmmss]形式に整形した文字列を生成 62 String nowStr = dateFormat.format(now); 63 //ストレージに格納する画像ファイル名を生成。ファイル名の一意を確保するためにタイムスタンプ 64 String fileName = "UseCameraActivityPhoto_" + nowStr+".jpg"; 65 //ContentValuesオブジェクトを生成 66 ContentValues values = new ContentValues(); 67 //画像ファイルの種類を設定 68 values.put(MediaStore.Images.Media.TITLE,fileName); 69 //ContentResolverオブジェクトを生成 70 ContentResolver resolver = getContentResolver(); 71 //ContentResolverを使ってURIオブジェクトを生成 72 _imageUri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values); 73 //Intentオブジェクトを生成 74 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 75 //Extra情報として_imageUriを設定 76 intent.putExtra(MediaStore.EXTRA_OUTPUT,_imageUri); 77 //アクティビティを起動 78 startActivityForResult(intent,200); 79 } 80 @Override 81 public void onRequestPermissionsResult(int requestCode,String[]permissions,int[] grantResults){ 82 //WRITE_EXTERNAL_STORAGEに対するパーミッションダイアログでかつ許可を選択したなら 83 if(requestCode == 2000 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ 84 //もう一度カメラアプリを起動 85 ImageView ivCamera= findViewById(R.id.ivCamera); 86 onCameraImageClick(ivCamera); 87 } 88 } 89} 90

AndroidManifest.xml

java

1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.test.cameraapp"> 4 5 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 6 7 <application 8 android:allowBackup="true" 9 android:icon="@mipmap/ic_launcher" 10 android:label="@string/app_name" 11 android:roundIcon="@mipmap/ic_launcher_round" 12 android:supportsRtl="true" 13 android:theme="@style/AppTheme"> 14 <activity android:name=".MainActivity"> 15 <intent-filter> 16 <action android:name="android.intent.action.MAIN" /> 17 18 <category android:name="android.intent.category.LAUNCHER" /> 19 </intent-filter> 20 </activity> 21 </application> 22 23</manifest>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aja

2019/11/12 08:32

このコードはストレージに保存しているのでは それともうまくできないから質問したのでしょうか もう一度コードを見て理解していけばいいだけだと思いますが
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問