2014-01-10 2 views
0

내 앱에서 버튼을 클릭하고 ViewImage에서 이미지를 변경하는 것에 대한 것입니다.이 이미지는 서버에서 가져온 것입니다. 하나의 이미지를 표시하려했지만 작동하지만 문제는 서버의 임의의 이미지를 내 ViewImage에 표시 할 수 없다는 것입니다. 다음은 서버에서 이미지를 표시하는 코드 S : 여기ImageView에서 임의의 이미지를로드하는 방법 android

package com.example.testurl; 

import java.io.InputStream; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.ProgressDialog; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.drawable.BitmapDrawable; 
import android.util.Log; 
import android.view.Menu; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 

public class MainActivity extends Activity { 

ImageView my_img; 
Bitmap mybitmap; 
ProgressDialog pd; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    new DisplayImageFromURL((ImageView) findViewById(R.id.my_image)).execute("http://www.tmonews.com/wp-content/uploads/2012/10/androidfigure.jpg"); 

} 

private class DisplayImageFromURL extends AsyncTask<String, Void, Bitmap> 

{ 
    ImageView bmImage; 
    @Override 
    protected void onPreExecute() { 
     // TODO Auto-generated method stub 
     super.onPreExecute(); 
     pd = new ProgressDialog(MainActivity.this); 
     pd.setMessage("Loading..."); 
     pd.show(); 
    } 
    public DisplayImageFromURL(ImageView bmImage) 
    { 
     this.bmImage = bmImage; 
    } 
    protected Bitmap doInBackground(String... urls) 
    { 
     String urldisplay = urls[0]; 
     Bitmap mIcon11 = null; 
     try 
     { 
      InputStream in = new java.net.URL(urldisplay).openStream(); 
      mIcon11 = BitmapFactory.decodeStream(in); 
      System.out.println("Success"); 

     } 
     catch (Exception e) 
     { 
      Log.e("Error", e.getMessage()); 
      System.out.println("Erroooooooooooor"); 
      e.printStackTrace(); 

     } 

     return mIcon11; 

    } 
    protected void onPostExecute(Bitmap result) { 
     bmImage.setImageBitmap(result); 
     pd.dismiss(); 
    } 
} 
} 

것은 그것은 단지 하나의 이미지를 표시 activity_main.xml

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

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="test" 
    /> 

<ImageView 
    android:id="@+id/my_image" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 

코드입니다, 내가 그것을 서버에 다른 이미지를 표시 할 무작위로 버튼을 클릭하면. 감사

+0

랜덤 이미지 URL을 AsyncTask에 전달합니다. –

답변

1

이 같은 array.xml에 배열 만들기 : 사용자가 버튼을 클릭하면, 배열에서 임의의 문자열 얻기 위해 이것을 사용 다음

<string-array name="url-array"> 
    <item>http://www.tmonews.com/wp-content/uploads/2012/10/androidfigure.jpg</item> 
    <item>url2</item> 
    <item>url3</item> 
    <item>url4</item> 
    etc.. 
</string-array> 

을 :

String[] array = context.getResources().getStringArray(R.array.url-array); 
String rdmStr = array[new Random().nextInt(array.length)]; 

을 그리고 마지막으로 rdmStr을 URL 대신 귀하의 AsyncTask에 전달하십시오.

나는 그것을 테스트하지 않았지만 이것이 효과가 있다고 생각합니다.

관련 문제