Note that there are some explanatory texts on larger screens.

plurals
  1. POImageView does not update properly
    primarykey
    data
    text
    <p>In my app, I have two imageViews that are the same size and both work fine. However, when I put a picture into each imageView and then try to switch out the top imageView with a different picture, the bottom imageView ends up getting the picture that is supposed to go in the top imageView. I'm not sure why this is. Here is my xml file:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" &gt; &lt;TextView android:id="@+id/personalizetextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/customize" android:textSize="30sp" android:gravity="center" android:layout_marginTop="20dip"/&gt; &lt;TextView android:id="@+id/personalizetextviewChangeBackground" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/customizebackground" android:gravity="center" /&gt; &lt;ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:maxWidth="100dp" android:maxHeight="100dp" android:scaleType="fitCenter" android:contentDescription="@string/descForBackground" /&gt; &lt;Button android:id="@+id/btnChangeImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/change_background" /&gt; &lt;TextView android:id="@+id/personalizetextviewChangeIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/change_icon" android:gravity="center" /&gt; &lt;ImageView android:id="@+id/imageView2Icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:maxWidth="100dp" android:maxHeight="100dp" android:scaleType="fitCenter" android:contentDescription="@string/descForIcon" /&gt; &lt;Button android:id="@+id/btnChangeImageForIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/change_icon" /&gt; &lt;/LinearLayout&gt; </code></pre> <p>And then here is my java coding:</p> <pre><code>package com.example.awesomefilebuilderwidget; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; public class Personalize extends Activity{ Button button; ImageView image; ImageView image2; Button btnChangeImage; Button btnChangeImageForIcon; private static final int SELECT_PICTURE = 1; private String selectedImagePath; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.personalize); addListenerOnButton(); } public void addListenerOnButton() { image = (ImageView) findViewById(R.id.imageView1); btnChangeImage = (Button) findViewById(R.id.btnChangeImage); btnChangeImage.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); startActivityForResult(intent, SELECT_PICTURE); } }); } public String getPath(Uri uri) { String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(uri, projection, null, null, null); int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); try { FileInputStream fileis=new FileInputStream(selectedImagePath); BufferedInputStream bufferedstream=new BufferedInputStream(fileis); byte[] bMapArray= new byte[bufferedstream.available()]; bufferedstream.read(bMapArray); Bitmap bMap = BitmapFactory.decodeByteArray(bMapArray, 0, bMapArray.length); //Here you can set this /Bitmap image to the button background image image.setImageBitmap(bMap); if (fileis != null) { fileis.close(); } if (bufferedstream != null) { bufferedstream.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } image = (ImageView) findViewById(R.id.imageView2Icon); btnChangeImageForIcon = (Button) findViewById(R.id.btnChangeImageForIcon); btnChangeImageForIcon.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); startActivityForResult(intent, SELECT_PICTURE); } }); } public boolean saveImageToInternalStorage(Bitmap image) { try { FileOutputStream fos = this.openFileOutput("desiredFilename.png", Context.MODE_PRIVATE); image.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.close(); return true; } catch (Exception e) { return false; } } } </code></pre> <p>UPDATED CODE THAT I AM WORKING WITH:</p> <pre><code>package com.example.awesomefilebuilderwidget; IMPORTS public class Personalize extends Activity implements OnClickListener { Button button; ImageView image; ImageView image2; Button btnChangeImage; Button btnChangeImageForIcon; private static final int SELECT_PICTURE = 1; private static final int SELECT_PICTURE_2 = 2; private String selectedImagePath; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.personalize); Button btnChangeImage = (Button) findViewById(R.id.btnChangeImage); btnChangeImage.setOnClickListener(this); Button btnChangeImageForIcon = (Button) findViewById(R.id.btnChangeImageForIcon); btnChangeImageForIcon.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); startActivityForResult(intent, SELECT_PICTURE); }; public String getPath(Uri uri) { String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = getContentResolver().query(uri, projection, null, null, null); int column_index = cursor .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); Bitmap b1 = getAndDecodeImage(selectedImagePath); if(b1 != null){ image.setImageBitmap(b1); } } else if (requestCode == SELECT_PICTURE_2) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); Bitmap b2 = getAndDecodeImage(selectedImagePath); if(b2 != null){ image2.setImageBitmap(b2); } } } } private Bitmap getAndDecodeImage(String selectedImagePath){ try { FileInputStream fileis=new FileInputStream(selectedImagePath); BufferedInputStream bufferedstream=new BufferedInputStream(fileis); byte[] bMapArray= new byte[bufferedstream.available()]; bufferedstream.read(bMapArray); Bitmap bMap = BitmapFactory.decodeByteArray(bMapArray, 0, bMapArray.length); //Here you can set this /Bitmap image to the button background image return bMap; if (fileis != null) { fileis.close(); } if (bufferedstream != null) { bufferedstream.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } public boolean saveImageToInternalStorage(Bitmap image) { try { FileOutputStream fos = this.openFileOutput("desiredFilename.png", Context.MODE_PRIVATE); image.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.close(); return true; } catch (Exception e) { return false; } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload