본문 바로가기

플밍 is 뭔들/안드로이드_인강

05-4. 어댑터 뷰

※ GridView
 - 데이터를 표형식으로 출력

MainActivity.java
public class MainActivity extends ActionBarActivity {

       private int[] data = {
                     R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher
                     ,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher
                     ,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher
                     ,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher
                     ,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher
                     ,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher
       };

       private GridView gv = null;
       private CustomAdapter adapter = null;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);

              adapter = new CustomAdapter( MainActivity.this, data);

              gv = (GridView)findViewById(R.id.gv_01);
              gv.setAdapter(adapter);
       }


}

CustomAdapter.java
public class CustomAdapter extends BaseAdapter  {

       private Context context;
       private int[] data;

       public CustomAdapter(Context context, int[] data) {
              // TODO Auto-generated constructor stub
              this.context = context;
              this.data= data;
       }

       @Override
       public int getCount() {
              // TODO Auto-generated method stub
              return data.length;
       }

       @Override
       public Object getItem(int position) {
              // TODO Auto-generated method stub
              return data[position];
       }

       @Override
       public long getItemId(int position) {
              // TODO Auto-generated method stub
              return position;
       }

       @Override
       public View getView(int position, View convertView, ViewGroup parent) {
              // TODO Auto-generated method stub
              ImageView imageView;
              if(convertView == null){
                     imageView = new ImageView(context);
                     //가로세로 크기
                     imageView.setLayoutParams(new GridView.LayoutParams(50, 50));
                     //가운데 정렬
                     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                     imageView.setPadding(5, 5, 5, 5);
              }else{
                     imageView = (ImageView) convertView;
              }

              imageView.setImageResource(data[position]);

              return imageView;
       }

}

activity_main.xml
<LinearLayout 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:layout_margin="20px"
    android:orientation="vertical"
    tools:context="com.example.androidex.MainActivity" >


   <GridView

       android:id="@+id/gv_01"
       android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:numColumns="3"
          android:padding="10px"
          android:verticalSpacing="10px"
          android:horizontalSpacing="10px"
          android:gravity="center"
       ></GridView>

</LinearLayout>

※ HorizontalScrollView
 - 가로형태의 스크롤 뷰 (아래에 이미지에 가로형태의 스크롤이 들어간다)
 

** CustomAdapter 는 위의 소스와 같기 때문에 쓰지 않는다.

MainActivity
public class MainActivity extends ActionBarActivity {

       private int[] data = {
             R.drawable.aa,R.drawable.aa,R.drawable.aa,R.drawable.aa,R.drawable.aa,R.drawable.aa
            ,R.drawable.aa,R.drawable.aa,R.drawable.aa,R.drawable.aa
               
       };

       private GridView gv = null;
       private CustomAdapter adapter = null;
       private LinearLayout ll;
       private ImageView[] ivs;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);

              adapter = new CustomAdapter( MainActivity.this, data);

              gv = (GridView)findViewById(R.id.gv_01);
              gv.setAdapter(adapter);

              ll=(LinearLayout)findViewById(R.id.ll_01);
              ivs= new ImageView[10];

              for(int i=0; i<10; i++){
                     ivs[i]= new ImageView(this);
                     ivs[i].setImageResource(data[i]);
                     ll.addView(ivs[i]);
              }
       }


}


activity_main.xml
<LinearLayout 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:orientation="vertical"
    tools:context="com.example.androidex.MainActivity" >


   <GridView

       android:id="@+id/gv_01"
       android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:numColumns="3"
          android:padding="10px"
          android:verticalSpacing="10px"
          android:horizontalSpacing="10px"
          android:gravity="center"
          android:background="#00ff00"
       ></GridView>


   <HorizontalScrollView
       android:id="@+id/hsv_01"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:paddingLeft="10px"
       android:paddingRight="10px"
       android:background="#0000ff">
       
       <LinearLayout
           android:id="@+id/ll_01"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:orientation="horizontal">
       </LinearLayout>

   </HorizontalScrollView>

</LinearLayout>


'플밍 is 뭔들 > 안드로이드_인강' 카테고리의 다른 글

06-2. 이벤트를 이용한 드로잉  (0) 2016.11.27
06-1. 이벤트 & 리스너  (0) 2016.11.27
05-3. 어댑터 뷰  (0) 2016.11.27
05-2. 어댑터 뷰  (0) 2016.11.27
05-1. 어댑터 뷰  (0) 2016.11.27