Выбрать и отобразить изображение одним нажатием кнопки - PullRequest
2 голосов
/ 04 мая 2011

Я хочу получить изображение по нажатию кнопки и отобразить его в том же упражнении.Это то, что я пробовал

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 Ответ

1 голос
/ 04 мая 2011

Не понял вашего вопроса, но если речь идет об этом комментарии о рандомизации загрузки, то просто добавьте переменную i в параметры метода downloadFile ():

void downloadFile(String fileUrl, int i)

Затем добавьте блок переключателя втело метода и заставьте его загрузить файл, который вам нужен для текущего значения i.Надеюсь, это то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...