Android開発してて思った

Android開発をしていて思ったことを書いていきます

画像をタップすると拡大表示する(Activity編)

今度はActivityを使って画面をタップしたときの拡大表示をやってみたいと思います。

ソースコード

MainActivity.java

package com.example.galleryviewsample3;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {
	
	// どこで呼び出したのかを判別するためのコード
	private static final int RESULTCODE = 1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ImageView imageView = (ImageView)findViewById(R.id.imageView1);
		imageView.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// 画像をクリックすると画像拡大アクティビティを呼び出す
				Intent intent = new Intent(getApplicationContext(), ExpandImageViewActivity.class);
				startActivityForResult(intent, RESULTCODE);
			}
		});
	}

	/**
	 * 他のActivityから戻ってきたときの処理
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);

		if(requestCode == RESULTCODE && resultCode == RESULT_OK){
			Toast.makeText(this, "元の画面に戻ってきた", Toast.LENGTH_SHORT).show();
		}
	}

}

ExpandImageViewActivity.java

package com.example.galleryviewsample3;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;

public class ExpandImageViewActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		// タイトルバーを非表示にする(setContentViewの前に呼ぶ)
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.expand_image_view);
		
		ImageView imageView = (ImageView)findViewById(R.id.expandImageView);
		imageView.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// 拡大した画像をタップするともとの画面に戻る
				Intent intent = new Intent();
				setResult(RESULT_OK, intent);	
				finish();
			}
		});
	}


}

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="166dp"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>

expand_image_view.xml

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

    <ImageView
        android:id="@+id/expandImageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher" />

</LinearLayout>