25

这是第一个画布:

<?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);
      }
    });

  }

}

我的 logcat 消息。

当我在手机上运行此代码时。发生错误,当我检查 logcat 时它说:我在setImageResource();.

我该怎么办?我是Android编程的初学者。

提前致谢。

4

8 回答 8

28

更新@

Simon Schubert 答案看起来正确。

否则,您也可以通过访问资源中的 getDrawable 方法来完成。

Resources resources = getResources();
image.setImageDrawable(resources.getDrawable(R.drawable.myfirstimage));
于 2013-02-07T07:36:27.643 回答
6

getResources().getDrawable已弃用。

你可以试试ContextCompat.getDrawable

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

于 2016-04-19T17:44:04.370 回答
5
  1. 好的,我看到了您的 logcat 图像捕获。做得好。

  2. 检查您的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。

日食:ProjectClean

安卓工作室:BuildClean Project

于 2013-02-07T07:35:47.070 回答
4

您也可以致电setImageDrawable

image.setImageDrawable(getResources().getDrawable(R.drawable.myfirstimage));
于 2013-02-07T07:35:22.040 回答
2

我和你有同样的问题。实际上我发现我所有的图像都放在 /res/drawable 中。我有一些非常大的图片,所以我不得不将它们移动到 /res/drawable-hdpi 或 xhdpi。另一个技巧是缩小它们。我希望这会对某人有所帮助。干杯

于 2014-01-27T22:32:22.683 回答
0

试试这个,

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

这将返回您想要访问的可绘制对象的 id...然后您可以通过执行以下操作在 imageview 中设置图像

imageview.setImageResource(id);
于 2013-02-07T07:31:20.027 回答
0

试试这个代码:

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

第一行将解决问题。

于 2018-02-05T07:08:47.337 回答
0

试试这个单行:

img.setImageDrawable(ResourcesCompat.getDrawable(getResources(),R.drawable.theResId, null));
于 2020-11-06T05:33:49.313 回答