Подтвердить что ты не робот

SetImageResource не работает

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> 

второй холст, который изменит изображение, - это

            <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>

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 мое сообщение logcat.

когда я запускаю этот код на своем телефоне. произошла ошибка. и когда я проверяю logcat, он говорит. что я имеет ошибку в setImageResource();

что мне делать? im a biginner в программировании для Android: (

заблаговременно

4b9b3361

Ответ 1

Обновлено @

Simon Schubert answer выглядит правильно.

В противном случае вы также можете получить доступ к методу getDrawable из ресурсов.

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

Ответ 2

Вы также можете вызвать setImageDrawable:

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

Ответ 3

getResources().getDrawable устарел.

Вы можете попробовать ContextCompat.getDrawable:

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

Ответ 4

  • Хорошо, я видел ваш захват изображения logcat. Отлично сработано.

  • Проверьте, существуют ли следующие идентификаторы в R.layout.cards.

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

Похоже, одно из ваших изображений недоступно. Что такое строка 55?

  1. Ваш код должен работать. Я думаю, что есть плохая ссылка в вашем R. Очистите свой проект и заново создайте свой R.

Eclipse: ProjectClean

Android Studio: BuildClean Project

Ответ 5

Попробуйте это,

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

Это вернет идентификатор выталкиваемого объекта, к которому вы хотите получить доступ... затем вы можете установить изображение в режиме просмотра изображений, выполнив следующие

imageview.setImageResource(id);

Ответ 6

У меня была такая же проблема, как и вы. Фактически я узнаю, что все мои изображения были помещены в /res/drawable. У меня было мало фотографий, которые были очень большими, поэтому мне пришлось переместить их в /res/drawable -hdpi или xhdpi. Еще один трюк - сжать их. Надеюсь, это поможет кому-то. Приветствия

Ответ 7

Попробуйте этот код:

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

Первая строка решит проблему.