如何使用imageView一次显示一个图像

时间:2014-06-05 11:32:26

标签: java android xml

我的问题是我想在屏幕上一次显示一张图像,每天我的图像都会改变。我正在使用imageView,但它显示了notification.xml的所有图像。我搜索了很多,我想我错过了一些简单的事情。 Plz帮助。

Notification.java是:

    package com.example.customcalendarandroid;
    import java.io.File;



    import android.net.Uri;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    import android.app.Activity;
    import android.graphics.drawable.Drawable;

    public class NotificationView extends Activity{
       @Override
       public void onCreate(Bundle savedInstanceState)
       {
          super.onCreate(savedInstanceState);
         setContentView(R.layout.notification);
          //setContentView(R.layout.newxml);

         int i=10;
         if(i==10){
             ImageView   imgView = (ImageView) findViewById(R.id.ekadashi_name2);
             imgView.setImageResource(R.drawable.prabhu2);
         }else
         {
             ImageView   imgView = (ImageView) findViewById(R.id.ekadashi_name3);
             imgView.setImageResource(R.drawable.prabhu3); 
         }
         }
and 

notification.xml is

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    >

    <ImageView
         android:id="@+id/ekadashi_name"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/krishna" />

  <ImageView
         android:id="@+id/ekadashi_name1"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/prabhupada" />
     <ImageView
         android:id="@+id/ekadashi_name2"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/prabhu2" />
     <ImageView
         android:id="@+id/ekadashi_name3"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/prabhu3" />
     <ImageView
         android:id="@+id/ekadashi_name4"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/prabhu4" />
     <ImageView
         android:id="@+id/ekadashi_name5"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/prabhu5" />
     <ImageView
         android:id="@+id/ekadashi_name6"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/prabhu6" />




    <ImageView
         android:id="@+id/ekadashi_name"
        android:layout_width="match_parent"
        android:layout_height="20sp"

        android:src="@drawable/prabhupada1" />


</LinearLayout>

4 个答案:

答案 0 :(得分:1)

您可以使用图像阵列  像

    private int[] imagesArray = {
    R.drawable.img_00,
    R.drawable.img_01,
    R.drawable.img_02,
    };

然后你可以做到

    Drawable d = getResources().getDrawable(imagesArray[i]);
    yourImageView.setImageDrawable(d);

每当你想加载图片时,只需更改int i值

在xml中只保留一个可以工作的图像视图.u保持不同的图像视图以实现差异

希望对你有所帮助

答案 1 :(得分:0)

这始终是真的:

int i=10;
if(i==10){
}

此程序将始终显示ekadashi_name2。您必须将i更改为随机数。

Random rn = new Random();
i = 1 + Random.nextInt(9);

这样,每次打开应用程序时,都会显示一个新图像。

答案 2 :(得分:0)

从xml中的所有ImageView中取出android:src="@drawable/prabhupada"参数..然后不会设置其他图像。默认情况下,您为它们提供图像源。

或者您可以将所有其他imageView指定为null

imageView.setImageResource(android.R.color.transparent);  // to set the image background null

答案 3 :(得分:0)

每天

,通过findViewByID获取任意随机图像,并将其可见性设置为可见并使用findViewById显示并访问所有其他图像,并根据您的要求将其可见性设置为不可见或不可见!    此外,不是在xml中添加所有图像,而是在xml中只添加一个图像,并为其设置任何源。从java代码设置源代码,而不是从xml。