SetImageResource no funciona

this is the first canvas. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/background_linen" > <ScrollView android:id="@+id/scrollView1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" " android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/img1" android:layout_width="wrap_content" android:layout_height="150dp" android:src="@drawable/girbaud1front" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" " android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/img2" android:layout_width="320dp" android:layout_height="150dp" android:src="@drawable/girbaud4front" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" " android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow> <TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/img3" android:layout_width="320dp" android:layout_height="150dp" android:src="@drawable/girbaud2front" /> </TableRow> <TableRow android:id="@+id/TableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" " android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow> <TableRow android:id="@+id/TableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/img4" android:layout_width="320dp" android:layout_height="150dp" android:src="@drawable/girbaud3front" /> </TableRow> <TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/TextView04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" " android:textAppearance="?android:attr/textAppearanceLarge" /> </TableRow> </TableLayout> </ScrollView> </RelativeLayout> 

El segundo lienzo que el cambio de imagen va a pasar es este

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/Layout01" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginBottom="10dp" android:layout_marginTop="10dp" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:scaleType="fitXY" android:src="@drawable/girbaud1front" /> <TextView android:id="@+id/txt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="62dp" android:layout_marginLeft="48dp" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#000000" /> </RelativeLayout> 

Archivo java

  package com.example.flip3d; import android.app.Activity; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.Toast; public class Cards extends Activity { ImageView img1; ImageView img2; ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.cards); img1 =(ImageView) findViewById(R.id.img1); img2 =(ImageView) findViewById(R.id.img2); image =(ImageView) findViewById(R.id.ImageView01); img1.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { image.setImageResource(R.drawable.myfirstimage); Intent startyou = new Intent("com.example.flip3d.FLIP3D"); startActivity(startyou); } }); img2.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { image.setImageResource(R.drawable.may2ndimage); Toast.makeText(Cards.this, "Card Selected", Toast.LENGTH_SHORT).show(); Intent startyou = new Intent("com.example.flip3d.FLIP3D"); startActivity(startyou); } }); } } 

Http://i820.photobucket.com/albums/zz130/lestah23/untitled-1_zps33fa9be5.png mi mensaje logcat.

Cuando ejecuto este código en mi teléfono. ocurrió un error. Y cuando compruebo el logcat dice. Que i tener error en setImageResource();

¿que debería hacer? Im un biginner en la programación android 🙁

gracias por adelantado

Actualizado@

Simon Schubert respuesta de Simon Schubert parece correcta.

De lo contrario, también puede hacerlo accediendo al método getDrawable desde Recursos.

 Resources resources = getResources(); image.setImageDrawable(resources.getDrawable(R.drawable.myfirstimage)); 

También puede llamar a setImageDrawable :

 image.setImageDrawable(getResources().getDrawable(R.drawable.myfirstimage)); 

getResources().getDrawable está obsoleto.

Puede intentar ContextCompat.getDrawable :

image.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.myimage));

  1. Ok vi su captura de imagen logcat. Bien hecho.

  2. Compruebe si los siguientes identificadores existen en su R.layout.cards .

     img1 = (ImageView) findViewById(R.id.img1); img2 = (ImageView) findViewById(R.id.img2); image = (ImageView) findViewById(R.id.ImageView01); 

Parece que una de sus imágenes no es accesible. ¿Qué es exactamente la línea 55?

  1. Su código debería funcionar. Supongo que hay una mala referencia en su R. Limpie su proyecto y recree su R.

Eclipse: ProyectoLimpiar

Android Estudio: BuildClean Project

Prueba esto,

 int id = getResources().getIdentifier("yourpackagename:drawable/" + StringGenerated, null, null); 

Esto devolverá el id del dibujable al que desea acceder … entonces puede configurar la imagen en la vista de imagen haciendo lo siguiente

 imageview.setImageResource(id); 

Yo tenía el mismo problema que tú. En realidad descubro que todas mis imágenes fueron colocadas en / res / drawable. Tenía pocas imágenes que eran muy grandes así que tuve que moverlas a / res / drawable-hdpi o xhdpi. Otro truco es reducirlos. Espero que esto ayude a alguien. Aclamaciones

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.