ºÇ½ª¹¹¿·¡§
t_yokky2002 2011ǯ12·î01Æü(ÌÚ) 16:12:25ÍúÎò
src/jp.co.example.practic/Downloader.java¤ò¿·µ¬ºîÀ®¤·¤Þ¤¹¡£
src/jp.co.example.practice¥Ñ¥Ã¥±¡¼¥¸¤ò±¦¥¯¥ê¥Ã¥¯¤·¡¢¿·µ¬¢Í¥¯¥é¥¹¤òÁªÂò¤·¡¢¼¡¤ÎÆâÍƤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
![](https://image01.seesaawiki.jp/a/r/androider/fdd45b4d69e371b5.png)
¼¡¤ÎÆâÍƤ˽ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
src/jp.co.example.practice¥Ñ¥Ã¥±¡¼¥¸¤ò±¦¥¯¥ê¥Ã¥¯¤·¡¢¿·µ¬¢Í¥¯¥é¥¹¤òÁªÂò¤·¡¢¼¡¤ÎÆâÍƤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
![](https://image01.seesaawiki.jp/a/r/androider/fdd45b4d69e371b5.png)
¼¡¤ÎÆâÍƤ˽ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
class Downloader { // ¢¤³¤³¤«¤é static public Bitmap downloadFile(String url) { try { Bitmap bmp = null; final DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet hg = new HttpGet(url); HttpResponse httpResponse = httpClient.execute(hg); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { bmp = BitmapFactory.decodeStream(httpResponse.getEntity() .getContent()); hg.abort(); } return bmp; } catch (ClientProtocolException e) { Log.d("photoViewer", "error", e); return null; } catch (IOException e) { Log.d("photoViewer", "error", e); return null; } } // ¢¬¤³¤³¤Þ¤Ç }
src/jp.co.example.practic/DownloadFilesTask.java¤ò¿·µ¬ºîÀ®¤·¤Þ¤¹¡£
src/jp.co.example.practice¥Ñ¥Ã¥±¡¼¥¸¤ò±¦¥¯¥ê¥Ã¥¯¤·¡¢¿·µ¬¢Í¥¯¥é¥¹¤òÁªÂò¤·¡¢¼¡¤ÎÆâÍƤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
![](https://image02.seesaawiki.jp/a/r/androider/39846992cf39188d.png)
¼¡¤ÎÆâÍƤ˽ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
src/jp.co.example.practice¥Ñ¥Ã¥±¡¼¥¸¤ò±¦¥¯¥ê¥Ã¥¯¤·¡¢¿·µ¬¢Í¥¯¥é¥¹¤òÁªÂò¤·¡¢¼¡¤ÎÆâÍƤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£
![](https://image02.seesaawiki.jp/a/r/androider/39846992cf39188d.png)
¼¡¤ÎÆâÍƤ˽ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£
public class DownloadFilesTask extends AsyncTask<String, Void, Bitmap> { // ¢¤³¤³¤«¤é private ProgressDialog mProgressDialog; private MainActivity mActivity; public DownloadFilesTask(MainActivity activity) { mActivity = activity; } @Override protected void onPreExecute() { // ¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤òɽ¼¨ mProgressDialog = new ProgressDialog(mActivity); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); mProgressDialog.setMessage("¥À¥¦¥ó¥í¡¼¥ÉÃæ..."); mProgressDialog.show(); } @Override protected Bitmap doInBackground(String... urls) { return Downloader.downloadFile(urls[0]); } @Override protected void onProgressUpdate(Void... progress) { } @Override protected void onPostExecute(Bitmap bmp) { mActivity.setImageBitmap(bmp); // ¥×¥í¥°¥ì¥¹¥À¥¤¥¢¥í¥°¤òÊĤ¸¤ë mProgressDialog.dismiss(); } // ¢¬¤³¤³¤Þ¤Ç }
¥µ¥à¥Í¥¤¥ë²¡²¼»þ¤Ë¡ÖDownloadFilesTask¡×¤ò¼Â¹Ô¤·¡¢¥À¥¦¥ó¥í¡¼¥É¤·¤¿²èÁü¤òImageView¤Ë¥»¥Ã¥È¤·¤Þ¤¹¡£
src/jp.co.example.practic/MainActivity.java¤ò¡¢¼¡¤Î¤è¤¦¤Ë½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
src/jp.co.example.practic/MainActivity.java¤ò¡¢¼¡¤Î¤è¤¦¤Ë½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
public class MainActivity extends Activity { private ImageView mImageView; private Integer[] mThumbIds = { R.drawable.photo1, R.drawable.photo8, R.drawable.photo7, R.drawable.photo4, R.drawable.photo5, R.drawable.photo6 }; // Äɲà private String[] mImageUrls = { "http://and-roid-app.appspot.com/images/photo1.jpg", "http://and-roid-app.appspot.com/images/photo2.jpg", "http://and-roid-app.appspot.com/images/photo3.jpg", "http://and-roid-app.appspot.com/images/photo4.jpg", "http://and-roid-app.appspot.com/images/photo5.jpg", "http://and-roid-app.appspot.com/images/photo6.jpg", "http://and-roid-app.appspot.com/images/photo7.jpg", "http://and-roid-app.appspot.com/images/photo8.jpg" }; //---- Ãæά----- public void setGallery() { Gallery g = (Gallery) findViewById(R.id.gallery); g.setAdapter(new ImageAdapter(this, mThumbIds)); g.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { // ¢¥³¥á¥ó¥È¥¢¥¦¥È // Toast.makeText(MainActivity.this, "" + position, // Toast.LENGTH_SHORT).show(); new DownloadFilesTask(MainActivity.this).execute(mImageUrls[position]); // Äɲà } }); }
¥¤¥ó¥¿¡¼¥Í¥Ã¥ÈÀܳ¤Î¥Ñ¡¼¥ß¥Ã¥·¥ç¥ó¤òÍ¿¤¨¤Þ¤¹¡£
AndroidManifest.xml¤ò¡¢¼¡¤Î¤è¤¦¤Ë½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
AndroidManifest.xml¤ò¡¢¼¡¤Î¤è¤¦¤Ë½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="jp.co.example.practice" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <!-- Äɲà --> <uses-permission android:name="android.permission.INTERNET"/> </manifest>
¥¿¥¤¥È¥ë¥Ð¡¼¤òÈóɽ¼¨¤Ë¤·¤Þ¤¹¡£
src/jp.co.example.practic/MainActivity.java¤ò¡¢¼¡¤Î¤è¤¦¤Ë½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
src/jp.co.example.practic/MainActivity.java¤ò¡¢¼¡¤Î¤è¤¦¤Ë½¤Àµ¤·¤Æ¤¯¤À¤µ¤¤¡£
public class MainActivity extends Activity { //---- Ãæά ---- /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); // --- Äɲà ---- setContentView(R.layout.main); mImageView = (ImageView) findViewById(R.id.image_view); // ¥µ¥à¥Í¥¤¥ë¤Î¥®¥ã¥é¥ê¡¼¤òºîÀ® setGallery(); } //---- Ãæά ----
¤³¤Î¥Ú¡¼¥¸¤Ø¤Î¥³¥á¥ó¥È
ÂçÊÑÊÙ¶¯¤Ë¤Ê¤ê¤Þ¤¹¡£
¼ÁÌä¤Ê¤Î¤Ç¤¹¤¬¡¢ÈóƱ´ü¥À¥¦¥ó¥í¡¼¥É¤»¤º¤Ë¥®¥ã¥é¥ê¡¼¤Î¥µ¥à¥Í¥¤¥ë¤ò¥¿¥Ã¥×¤¹¤ë¤È²èÁü¤¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¤É¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÎɤ¤¤Ç¤·¤ç¤¦¤«¡£
¤ªË»¤·¤¤¤È¤Ï»×¤¤¤Þ¤¹¤¬²óÅú¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£