单击按钮即可获取并显示图像

时间:2011-05-04 08:12:05

标签: android image download

我想在点击按钮时获取图像并将其显示在同一活动中。这就是我试过的

public class MainActivity extends Activity {


    ImageView imView;
    String imageUrl="http://variable3.com/files/images/email-sig.jpg";
    Random r= new Random();
   /** Called when the activity is first created. */ 
   @Override
   public void onCreate(Bundle icicle) {
       super.onCreate(icicle);
       setContentView(R.layout.main);

       Button bt3= (Button)findViewById(R.id.get_imagebt);
       bt3.setOnClickListener(getImgListener);

       imView = (ImageView)findViewById(R.id.imview);
       Log.i("img already downloaded","img");
   }    

   View.OnClickListener getImgListener = new View.OnClickListener()
   {

         public void onClick(View view) {
              // TODO Auto-generated method stub

              //i tried to randomize the file download, in my server i put 4 files with name like
                       //png0.png, png1.png, png2.png so different file is downloaded in button press
             int i =r.nextInt(4);
              downloadFile(imageUrl);
              Log.i("im url",imageUrl);
         }

   };


   Bitmap bmImg;
   void downloadFile(String fileUrl){
         URL myFileUrl =null;          
         try {
              myFileUrl= new URL(fileUrl);
         } catch (MalformedURLException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
         }
         try {
              HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
              conn.setDoInput(true);
              conn.connect();
              int length = conn.getContentLength();
              InputStream is = conn.getInputStream();

              Log.i("im connected","Download");
              bmImg = BitmapFactory.decodeStream(is);
              imView.setImageBitmap(bmImg);
         } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
         }
    }

}

1 个答案:

答案 0 :(得分:1)

不明白你的问题,但如果是关于随机化下载的评论,那么只需将你的i变量添加到downloadFile()方法参数:

void downloadFile(String fileUrl, int i)

然后将一个开关块添加到方法的主体,并使其下载当前值为i所需的文件。希望这是你需要的。