Step1

src/jp.co.example.practic/Downloader.javaを新規作成します。
src/jp.co.example.practiceパッケージを右クリックし、新規⇒クラスを選択し、次の内容を入力してください。



次の内容に書き換えてください。
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;
		}
	}
        // ↑ここまで
}

Step2

src/jp.co.example.practic/DownloadFilesTask.javaを新規作成します。
src/jp.co.example.practiceパッケージを右クリックし、新規⇒クラスを選択し、次の内容を入力してください。



次の内容に書き換えてください。
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();
	}
        // ↑ここまで
}

Step3

サムネイル押下時に「DownloadFilesTask」を実行し、ダウンロードした画像をImageViewにセットします。
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]); // 追加
		}
	});
}

Step4

インターネット接続のパーミッションを与えます。
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>

Step5

タイトルバーを非表示にします。
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();
	}

//---- 中略 ----

Step6

実行してください。画像を押下し、次のように表示されましたか。



制作は、これで終了です。お疲れ様でした。

このページへのコメント

If a scholar does not have their tuition included in financial aid as well as loans, the following tuition monthly bill is due from the first several weeks of the semester <a href=http://myguaranteedpaydayloansuk.tripod.co.uk/>pay day loan</a> <a href="http://myguaranteedpaydayloansuk.tripod.co.uk/">instant payday loans maryland</a> You will find cases the place they are going to identify to confirm your employment facts as well http://myguaranteedpaydayloansuk.tripod.co.uk/

0
Posted by viecumperee 2014年02月01日(土) 11:57:37 返信

LyK8uV <a href="http://tpotabjivqkd.com/">tpotabjivqkd</a>, [url=http://glxyvfdhdmbw.com/]glxyvfdhdmbw[/url], [link=http://elcmyrehwanz.com/]elcmyrehwanz[/link], http://tppjsztqajrl.com/

0
Posted by ekxagr 2014年01月27日(月) 09:26:37 返信

What effect will that have for those people who stuck in big financial problems., <a href="http://www.bvcpaydayloans.co.uk/">daythatchangedmylife.co.uk</a>, [url=http://www.bvcpaydayloans.co.uk/]daythatchangedmylife.co.uk[/url], lovxl,

0
Posted by Dhanweyv 2014年01月27日(月) 05:03:05 返信

大変勉強になります。
質問なんですが、ギャラリーは表示されるのですがタップしても画像が表示されません。
エラーなどは出ていません。
考えられる問題は何でしょうか??
お忙しいとは思いますが回答をよろしくお願いいたします。

0
Posted by st 2013年12月10日(火) 21:47:11 返信

I22Oiu <a href="http://jfuiufzacufi.com/">jfuiufzacufi</a>, [url=http://dmklgtqcoxtf.com/]dmklgtqcoxtf[/url], [link=http://vhppunnumhkw.com/]vhppunnumhkw[/link], http://hjjqbcpzopep.com/

0
Posted by vyxcakf 2013年11月14日(木) 08:58:55 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます