ImageView中的图像定时更改问题

4
package com.example.imagechange;

public class MainActivity extends Activity 
{

ImageView imageView;
int []imageArray={R.drawable.a0,R.drawable.a1,R.drawable.a2,R.drawable.a3};


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

    imageView = (ImageView)findViewById(R.id.imageView1);

    final Handler handler = new Handler();
    Runnable runnable = new Runnable() 
    {
                int i=0;
                public void run() 
                {
                    imageView.setImageResource(imageArray[i]);
                    i++;
                    if(i>imageArray.length-1)
                    {
                    i=0;    
                    }
                    handler.postDelayed(this, 3000);  //for interval...
                }

    };
            handler.postDelayed(runnable, 1000); //for initial delay..
  }




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
  }
 }

我的活动主界面:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >



<ImageView
    android:id="@+id/imageView1"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:contentDescription="@string/app_name"
    android:layout_marginTop="56dp"
    android:src="@drawable/a0" />

</RelativeLayout>

在上述代码中,我已经将图片复制到了drawable文件夹,并定期更改它,但我需要从url获取图片并在ImageView中显示。


ImageView定期更改图像...这是什么意思?您想知道如何从URL创建位图吗? - Shrikant Ballal
不,我想从网站获取图片……假设我有4个URL并正在下载它们,并在ImageView中显示它们,同时我还必须在固定时间间隔内更改相同ImageView中的图像…… - VIGNESH.SRINIVASAGAN
3个回答

2
ImageView MyImageView;
int []imageArray={R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.one);
    MyImageView=(ImageView)findViewById(R.id.imageView1);

    /*here the countdown start for images*/

    final Handler handler = new Handler();
    Runnable runnable = new Runnable() {
       int i=0;
       public void run() {
           MyImageView.setImageResource(imageArray[i]);
           i++;
           if(i>imageArray.length-1) {
               i=0;    
           }
           handler.postDelayed(this, 500);  //for interval...
       }
   };
   handler.postDelayed(runnable, 2000); //for initial delay..
    /*here the button click counter start */
}

res>layout>drawable中创建第一个可绘制文件夹,并将图片a.png、b.png等放入其中。

0

你的代码在这一行中从资源设置了图像

imageView.setImageResource(imageArray[i]);

你想要做的是使用 UrlImageViewHelper 从 URL 加载图片。

0
尝试以下代码:首先需要从URL获取图像路径,然后将该URL传递给此函数。
public static Bitmap getBitmapFromURL(String src) {
    try {
        URL url = new URL(src);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

没有太复杂的操作 - 只需使用“src”字符串创建一个URL对象(即String src =“http://thinkandroid.wordpress.com”),连接到它,并使用Android的BitmapFactory类解码输入流。结果应该是您想要的位图对象!

之后:

imageView.setImageBitmap(bitmap);

谢谢回复,我通过下载SmartImageView(http://loopj.com/android-smart-image-view/)完成了它。 - VIGNESH.SRINIVASAGAN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接