스피너 커스텀하기
java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package com.example.gwon.blog_045; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Spinner; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { //UI Spinner spinner1; //Adapter AdapterSpinner1 adapterSpinner1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //데이터 List<String> data = new ArrayList<>(); data.add("가짜 데이터 1"); data.add("가짜 데이터 2"); data.add("가짜 데이터 3"); data.add("가짜 데이터 4"); data.add("가짜 데이터 5"); data.add("가짜 데이터 6"); data.add("가짜 데이터 7"); data.add("가짜 데이터 8"); data.add("가짜 데이터 9"); data.add("가짜 데이터 10"); //UI생성 spinner1 = (Spinner)findViewById(R.id.spinner1); //Adapter adapterSpinner1 = new AdapterSpinner1(this, data); //Adapter 적용 spinner1.setAdapter(adapterSpinner1); } } | cs |
Adapter)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | package com.example.gwon.blog_045; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.List; /** * Created by gwon on 2016-12-03. */ public class AdapterSpinner1 extends BaseAdapter { Context context; List<String> data; LayoutInflater inflater; public AdapterSpinner1(Context context, List<String> data){ this.context = context; this.data = data; inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { if(data!=null) return data.size(); else return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null) { convertView = inflater.inflate(R.layout.spinner_spinner1_normal, parent, false); } if(data!=null){ //데이터세팅 String text = data.get(position); ((TextView)convertView.findViewById(R.id.spinnerText)).setText(text); } return convertView; } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { if(convertView==null){ convertView = inflater.inflate(R.layout.spinner_spinner1_dropdown, parent, false); } //데이터세팅 String text = data.get(position); ((TextView)convertView.findViewById(R.id.spinnerText)).setText(text); return convertView; } @Override public Object getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } } | cs |
activity_main.xml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" 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="com.example.gwon.blog_045.MainActivity"> <Spinner android:id="@+id/spinner1" android:background="@drawable/spinner_spinner1" android:layout_width="match_parent" android:layout_height="30dp" /> </RelativeLayout> | cs |
spinner_spinner1_normal.xml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center_vertical" android:paddingLeft="13dp" android:paddingRight="13dp" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:src="@drawable/img_wifi_lock" android:layout_width="24dp" android:layout_height="24dp" /> <TextView android:id="@+id/spinnerText" android:textSize="15sp" android:textColor="#000" android:alpha="0.87" android:paddingLeft="13dp" android:textColorHint="#1f000000" android:gravity="center" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="match_parent" /> <ImageView android:src="@drawable/img_arrow_down" android:scaleType="centerInside" android:layout_width="20dp" android:layout_height="match_parent" /> </LinearLayout> | cs |
spinner_spinner1_dropdown.xml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center_vertical" android:padding="5dp" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:src="@drawable/img_wifi_lock" android:layout_width="24dp" android:layout_height="24dp" /> <TextView android:id="@+id/spinnerText" android:textSize="15sp" android:textColor="#000" android:alpha="0.87" android:paddingLeft="13dp" android:textColorHint="#1f000000" android:gravity="center" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="match_parent" /> </LinearLayout> | cs |
drawable > spinner_spinner1,xml
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <stroke android:color="#c3cad1" android:width="1dp" /> <corners android:radius="5dp" /> <solid android:color="#fff" /> </shape> </item> </selector> | cs |
결과
'IT > - 프로그래밍' 카테고리의 다른 글
안드로이드 구글플레이로 이동하기 (0) | 2016.12.03 |
---|---|
안드로이드 설정화면으로 시작하기 (0) | 2016.12.03 |
안드로이드 통신사, 전화번호 가져오기 (0) | 2016.12.03 |
안드로이드 카메라앱 호출하여 사진찍고 이미지뷰에 출력하기 (0) | 2016.12.01 |
안드로이드 텍스트(.txt)파일 읽기 (0) | 2016.11.25 |