有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java setImageResource在Android中不工作

我是java的初学者,我想随机化一些图片,我用这段代码来实现

int[] cards = {R.drawable.i1, R.drawable.i2, R.drawable.i3};
Random n = new Random();
Resources resources = getResources();
imgRandom.setImageResource(cards[n]);

而且它不起作用,因为setImageResource是红色的,Android Studio说:无法解析符号“setImageResource”。有人能帮我吗

所有java代码:

    package eduard.alarmamotivationala;

import 安卓.content.res.Resources;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.widget.ImageView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

    ImageView m_imgRandom;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public ImageView getM_imgRandom() { int[] cards = {R.drawable.i1, R.drawable.i2, R.drawable.i3};
        Random n = new Random();
        Resources resources = getResources();
        m_imgRandom.setImageResource(cards [3]);
        return m_imgRandom; }
}

所有XML代码:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
    xmlns:tools="http://schemas.安卓.com/tools"
    安卓:id="@+id/activity_main"
    安卓:layout_width="match_parent"
    安卓:layout_height="match_parent"
    安卓:paddingBottom="@dimen/activity_vertical_margin"
    安卓:paddingLeft="@dimen/activity_horizontal_margin"
    安卓:paddingRight="@dimen/activity_horizontal_margin"
    安卓:paddingTop="@dimen/activity_vertical_margin"
    安卓:background="#000000"
    tools:context="eduard.alarmamotivationala.MainActivity">

    <Button
        安卓:text="Porneste alarma"
        安卓:layout_width="wrap_content"
        安卓:layout_height="wrap_content"
        安卓:layout_alignParentTop="true"
        安卓:layout_alignParentStart="true"
        安卓:id="@+id/button" />

    <Button
        安卓:text="Opreste alarma"
        安卓:layout_width="wrap_content"
        安卓:layout_height="wrap_content"
        安卓:layout_alignParentTop="true"
        安卓:layout_alignParentEnd="true"
        安卓:id="@+id/button2" />

    <TextView
        安卓:text="Inca nu ai setat alarma"
        安卓:textColor="#FFFFFF"
        安卓:layout_width="wrap_content"
        安卓:layout_height="wrap_content"
        安卓:layout_below="@+id/button"
        安卓:layout_centerHorizontal="true"
        安卓:layout_marginTop="11dp"
        安卓:id="@+id/textView" />

    <TimePicker
        安卓:layout_width="wrap_content"
        安卓:layout_height="wrap_content"
        安卓:scaleX="0.7"
        安卓:scaleY="0.7"
        安卓:headerBackground="@安卓:color/transparent"
        安卓:numbersSelectorColor="#027aed"
        安卓:id="@+id/timePicker"
        安卓:layout_marginTop="36dp"
        安卓:layout_alignParentTop="true"
        安卓:layout_alignParentStart="true" />

    <ImageView
        安卓:id="@+id/imgRandom"
        安卓:layout_width="wrap_content"
        安卓:layout_height="wrap_content"
        安卓:scaleType = "centerCrop" />
</RelativeLayout>

共 (2) 个答案

  1. # 1 楼答案

    int[] cards = {R.drawable.i1, R.drawable.i2, R.drawable.i3};
    int n = new Random().nextInt(3);
    imgRandom.setImageResource(cards[n]);
    

    生成从0到2的随机数

    int n = new Random().nextInt(3);
    

    从数组中取出随机图像并设置为image

    imgRandom.setImageResource(cards[n]);
    

    就这些

  2. # 2 楼答案

        <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:background="#000000"
        tools:context="eduard.alarmamotivationala.MainActivity">
    
        <Button
            android:text="Porneste alarma"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true"
            android:id="@+id/button" />
    
        <Button
            android:text="Opreste alarma"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentEnd="true"
            android:id="@+id/button2" />
    
        <TextView
            android:text="Inca nu ai setat alarma"
            android:textColor="#FFFFFF"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/button"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="11dp"
            android:id="@+id/textView" />
    
        <TimePicker
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleX="0.7"
            android:scaleY="0.7"
            android:headerBackground="@android:color/transparent"
            android:numbersSelectorColor="#027aed"
            android:id="@+id/timePicker"
            android:layout_marginTop="36dp"
            android:layout_alignParentTop="true"
            android:layout_alignParentStart="true" />
    
        <! changed wrap_content to match_parent for getting the full screen image view >
    
        <ImageView
            android:id="@+id/imgRandom"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType = "centerCrop" />
    </RelativeLayout>
    

    也试试看

    android:scaleType = "centerInside"
    

    android:scaleType = "fitXY"
    

    感受变化

    在java文件中

        package eduard.alarmamotivationala;
    
    import android.content.res.Resources;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    import java.util.Random;
    
    public class MainActivity extends AppCompatActivity {
    
        int[] cards = {R.drawable.i1, R.drawable.i2, R.drawable.i3};
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //   initializing the image view
            ImageView m_imgRandom = (ImageView) findViewById(R.id.imgRandom);
            //   choosing a random number from 0 to 2
            int n = new Random().nextInt(3);
            //   choosing the random image from cards array using the random number
            m_imgRandom.setImageResource(cards[n]);
    
        }
    }
    

    没有测试。希望它能奏效