前提
androidについて質問します。
以下の動画をもとにプログラムを組んだのですが、パス名が間違えているからか正常に動作しません。画像ファイルを扱ったことがないため調べながら検証しているのですがうまくいきません。
catchの方にしか行きません
以下が参考動画です
https://www.youtube.com/watch?v=8-MOTyaoe_0
実現したいこと
androidの中に保存している画像を読み込みたい
該当のソースコード
build.gradle
1 implementation 'com.google.android.gms:play-services-vision:20.1.3'
AndroidManifest.xml
1 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 2 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
mainActivity.java
1import android.Manifest; 2import android.app.Activity; 3import android.content.pm.PackageManager; 4import android.graphics.Bitmap; 5import android.graphics.BitmapFactory; 6import android.os.Bundle; 7import android.util.SparseArray; 8import android.view.View; 9import android.widget.EditText; 10import android.widget.ImageView; 11import android.widget.TextView; 12 13import androidx.appcompat.app.AppCompatActivity; 14import androidx.core.app.ActivityCompat; 15 16import com.google.android.gms.vision.Frame; 17import com.google.android.gms.vision.text.TextBlock; 18import com.google.android.gms.vision.text.TextRecognizer; 19 20public class MainActivity extends AppCompatActivity { 21 22 private TextView textView; 23 private EditText editText; 24 private ImageView imageView; 25 public Bitmap bitmap; 26 27 @Override 28 protected void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.activity_main); 31 32 ActivityCompat.requestPermissions(this, 33 new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 34 Manifest.permission.WRITE_EXTERNAL_STORAGE}, 35 PackageManager.PERMISSION_GRANTED); 36 37 textView = findViewById(R.id.textView); 38 editText = findViewById(R.id.editText); 39 imageView = findViewById(R.id.imageView); 40 } 41 42 public void buttonReadText(View view){ 43 try { 44 String stringFileName = "/storage/emulater/0/Download/" + editText.getText().toString(); 45 bitmap = BitmapFactory.decodeFile(stringFileName); 46 47 imageView.setImageBitmap(bitmap); 48 49 TextRecognizer textRecognizer = new TextRecognizer.Builder(this).build(); 50 51 Frame frameImage = new Frame.Builder().setBitmap(bitmap).build(); 52 53 SparseArray<TextBlock> textBlockSparseArray = textRecognizer.detect(frameImage); 54 55 String stringImageText = ""; 56 for(int i=0; i<textBlockSparseArray.size(); i++){ 57 TextBlock textBlock = textBlockSparseArray.get(textBlockSparseArray.keyAt(i)); 58 59 stringImageText = stringImageText + " " + textBlock.getValue(); 60 } 61 62 textView.setText(stringImageText); 63 64 }catch (Exception e){ 65 textView.setText("Failed"); 66 } 67 } 68}
activity_main.xml
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 <Button 10 android:id="@+id/button" 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 android:layout_marginTop="196dp" 14 android:text="Button" 15 android:onClick="buttonReadText" 16 app:layout_constraintEnd_toEndOf="parent" 17 app:layout_constraintHorizontal_bias="0.498" 18 app:layout_constraintStart_toStartOf="parent" 19 app:layout_constraintTop_toTopOf="parent" /> 20 21 <EditText 22 android:id="@+id/editText" 23 android:layout_width="wrap_content" 24 android:layout_height="wrap_content" 25 android:layout_marginTop="92dp" 26 android:ems="10" 27 android:inputType="textPersonName" 28 app:layout_constraintEnd_toEndOf="parent" 29 app:layout_constraintHorizontal_bias="0.497" 30 app:layout_constraintStart_toStartOf="parent" 31 app:layout_constraintTop_toTopOf="parent" /> 32 33 <TextView 34 android:id="@+id/textView" 35 android:layout_width="wrap_content" 36 android:layout_height="wrap_content" 37 android:layout_marginTop="120dp" 38 android:text="TextView" 39 app:layout_constraintEnd_toEndOf="parent" 40 app:layout_constraintHorizontal_bias="0.498" 41 app:layout_constraintStart_toStartOf="parent" 42 app:layout_constraintTop_toBottomOf="@+id/button" /> 43 44 <ImageView 45 android:id="@+id/imageView" 46 android:layout_width="251dp" 47 android:layout_height="197dp" 48 app:layout_constraintBottom_toBottomOf="parent" 49 app:layout_constraintEnd_toEndOf="parent" 50 app:layout_constraintStart_toStartOf="parent" 51 app:layout_constraintTop_toBottomOf="@+id/textView" 52 app:srcCompat="@drawable/ic_launcher_background" /> 53 54 55</androidx.constraintlayout.widget.ConstraintLayout>

回答1件
あなたの回答
tips
プレビュー