Hallo
ich habe ein kleines Programm, welches auf die Kamera zugreift, und dann das Bild in einem ImageView anzeigen soll.
Bis zur Kamera und Bild aufnehmen klappt das auch mitterweile.
Aber ich bekomme das Bild nicht in das ImageView (also gar kein Bild auch kein Defaultbild was ich dem ImageView vorher zuweise).
Ich programmiere im Android Studio 4.0 vom 20.Mai.
Ich würde euch mal den Code mit hier rein packen..
wäre toll wenn mir einer erklären könnte was ich falsch mache.
Thx Kaladial
MainActivity.java:
main_activity.xml:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example_kaladial82.sharedpref"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider> </application> </manifest>
omg ist die formatierung hier grottig sorry
ich habe ein kleines Programm, welches auf die Kamera zugreift, und dann das Bild in einem ImageView anzeigen soll.
Bis zur Kamera und Bild aufnehmen klappt das auch mitterweile.
Aber ich bekomme das Bild nicht in das ImageView (also gar kein Bild auch kein Defaultbild was ich dem ImageView vorher zuweise).
Ich programmiere im Android Studio 4.0 vom 20.Mai.
Ich würde euch mal den Code mit hier rein packen..
wäre toll wenn mir einer erklären könnte was ich falsch mache.
Thx Kaladial
MainActivity.java:
Code:
package com.example_kaladial82.sharedpref; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; import android.Manifest; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.content.SharedPreferences; import android.os.Environment; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; import java.io.File; public class MainActivity extends AppCompatActivity { String kfz = ""; Button btnKam; ImageView ivBild1; Intent bildIntent; Context context; File dir = new File(Environment.getExternalStorageDirectory(), "Fotoapp"); File bild = new File(dir, "0.png"); Uri bilduri = FileProvider.getUriForFile(MainActivity.this, BuildConfig.APPLICATION_ID + ".provider", bild); int Kameracode = 11; Bitmap bm1; private EditText etKFZ1; int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etKFZ1 = (EditText) findViewById(R.id.etKFZ); btnKam = (Button) findViewById(R.id.btnCam); ivBild1 = (ImageView) findViewById(R.id.ivBild); /*if(bild.exists()) { bm1 = BitmapFactory.decodeFile(bild.getAbsolutePath()); ivBild1.setImageBitmap(bm1); }*/ btnKam.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { try { kfz = etKFZ1.getText().toString(); bildIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); bildIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); bildIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); bildIntent.putExtra(MediaStore.EXTRA_OUTPUT, bilduri); startActivityForResult(bildIntent, Kameracode); }catch(Exception ex) { ex.printStackTrace(); Toast.makeText(getApplicationContext(), "Kamera unterstützt das nicht..." + ex.getMessage(), Toast.LENGTH_SHORT).show(); } } } ); //SharedPreferences mySPR = getSharedPreferences("MySPFILE",0); //etKFZ1.setText(mySPR.getString("myKey1", "AP-AA 582")); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { if(resultCode == RESULT_OK) { if(requestCode == Kameracode) { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1234); } } else { dateierstellen(); } } } else { Toast.makeText(getApplicationContext(), "resultCode: "+resultCode ,Toast.LENGTH_SHORT).show(); } super.onActivityResult(requestCode, resultCode, data); } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == 1234) { if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { Log.i("resultcode", "dateierstellen " + requestCode); dateierstellen(); } else { Toast.makeText(getApplicationContext(), "Permission Denied", Toast.LENGTH_SHORT).show(); } } } private void dateierstellen() { Toast.makeText(getApplicationContext(), "Bild gespeichert unter: " + bild.getAbsolutePath() ,Toast.LENGTH_SHORT).show(); bm1 = BitmapFactory.decodeFile(bild.getAbsolutePath()); ivBild1.setImageBitmap(bm1); i++; bild = new File(dir, i + ".png"); Toast.makeText(getApplicationContext(), "Neues Bild: " + bild.getAbsolutePath() ,Toast.LENGTH_SHORT).show(); } @Override protected void onStop() { super.onStop(); SharedPreferences mySPR = getSharedPreferences("MySPFILE",0); SharedPreferences.Editor editor = mySPR.edit(); editor.putString ("myKey1", etKFZ1.getText().toString()); editor.commit(); } }
Code:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/constraintLayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" tools:layout_editor_absoluteX="-58dp" tools:layout_editor_absoluteY="219dp"> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TestApp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.035" /> <EditText android:id="@+id/etKFZ" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="92dp" android:layout_marginTop="136dp" android:layout_marginEnd="109dp" android:layout_marginBottom="24dp" android:ems="10" android:inputType="textPersonName" android:text="AP-AA 582" app:layout_constraintBottom_toTopOf="@+id/btnCam" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/btnCam" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="161dp" android:layout_marginTop="24dp" android:layout_marginEnd="162dp" android:layout_marginBottom="478dp" android:text="Kamera" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/etKFZ" /> <ImageView android:id="@+id/ivBild" android:layout_width="229dp" android:layout_height="234dp" android:layout_marginBottom="192dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.495" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/etKFZ" app:layout_constraintVertical_bias="1.0" tools:srcCompat="@tools:sample/backgrounds/scenic" /> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example_kaladial82.sharedpref"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider> </application> </manifest>
omg ist die formatierung hier grottig sorry
Comment