package com.yokmama.learn10.chapter07.lesson32; import android.content.Intent; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //GridViewにセットする画像リストを生成 List<Integer> itemList = getImageList(); //GirdViewに画像をセット GridView gridView = (GridView) findViewById(R.id.gridView); GridItemAdapter adapter = new GridItemAdapter(MainActivity.this, itemList); gridView.setAdapter(adapter); //GridViewにクリックリスナーをセット gridView.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { //クリックされた画像のリソースIDを取得 int resId = (int) adapterView.getAdapter().getItem(i); //パレット解析を行うアクティビティに移動 //画像のトランジッション処理のためキー名を設定(Lollipop以降のみ動作) ActivityOptionsCompat options = ActivityOptionsCompat .makeSceneTransitionAnimation(this, view, getString(R.string.se_image)); Intent intent = new Intent(MainActivity.this, PaletteActivity.class); intent.putExtra(PaletteActivity.KEY_IMAGE, resId); ActivityCompat.startActivity(this, intent, options.toBundle()); } private List<Integer> getImageList(){ List<Integer> imageList = new ArrayList<>(); //21個の画像をScrollViewのItemとして追加 for (int i = 1; i <= 21; i++) { String resName = "dog" + i; //文字列からリソースのIDを取得 int imageId = getResources().getIdentifier(resName, "drawable", getPackageName()); imageList.add(imageId); } return imageList; } }