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));
-
Ok vi su captura de imagen logcat. Bien hecho.
-
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?
- Su código debería funcionar. Supongo que hay una mala referencia en su R. Limpie su proyecto y recree su R.
Eclipse: Proyecto → Limpiar
Android Estudio: Build → Clean 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