11-2는 소스코드 올려주신다고 함
1018_1 GridView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/grid"
android:gravity="center"
android:numColumns="3" />
</LinearLayout>
<?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"
android:gravity="center">
<ImageView
android:id="@+id/ivPoster"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</LinearLayout>
package com.example.sw1018;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.Context;
import android.media.Image;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final GridView grid = findViewById(R.id.grid);
MyGrid myGrid = new MyGrid(this);
//위에 넣으면 final이 필요없고, 밑에서는 다른 애들이 참조하기 대문에 final을 붙여줌.
}
public class MyGrid extends BaseAdapter{
Context context;
// 그림 상수화 해놓은 것 배열로 만듦
Integer[] posterId = {R.drawable.mov01, R.drawable.mov02,
R.drawable.mov03, R.drawable.mov04,R.drawable.mov05, R.drawable.mov06,
R.drawable.mov07, R.drawable.mov08,R.drawable.mov09, R.drawable.mov10,
R.drawable.mov11, R.drawable.mov12};
MyGrid(Context context){
this.context = context;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ImageView imgView = new ImageView(context);
imgView.setLayoutParams(new ViewGroup.LayoutParams(140, 200));
imgView.setScaleType(ImageView.ScaleType.CENTER);
imgView.setPadding(5, 5, 5, 5);
imgView.setImageResource(posterId[i]);
final int pos = i;
imgView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
View dialog = View.inflate(MainActivity.this,
R.layout.dialog, null);
AlertDialog.Builder dlg =
new AlertDialog.Builder(MainActivity.this);
ImageView ivPoster = dialog.findViewById(R.id.ivPoster);
ivPoster.setImageResource(posterId[pos]);
dlg.setTitle(posterTitle[pos]);
dlg.setView(dialog);
dlg.setNegativeButton("close", null);
dlg.show();
}
});
return imgView;
}
public int getCount() {
return posterId.length;
}
public Object getItem(int i) {
return null;
}
public long getItemId(int i) {
return 0;
}
String[] posterTitle = {"써니", "완득이", "괴물", "라디오스타",
"써니", "완득이", "괴물", "라디오스타",
"써니", "완득이", "괴물", "라디오스타"};
}
}