티스토리 뷰
GridAdapter.java
class GridAdapter extends BaseAdapter {
private LayoutInflater inflater;
private List pictureList;
public GridAdapter (List list) {
inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
pictureList = list;
}
@Override
public int getCount() {
return pictureList.size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(convertView == null) {
convertView = inflater.inflate(R.layout.grid_item, parent, false);
}
ImageView imageView = convertView.findViewById(R.id.img_grid);
//onCreate에서 정해준 크기로 이미지를 붙인다.
Glide.with(mContext).load(pictureList.get(position)).override(mGridItemSize,mGridItemSize).into(imageView);
return convertView;
}
}
mGridItemSize - 얘는 그려주는 액티비티에서... 생성자 통해서 받아도 되고. 한 클래스에서 하면 멤버로 써도 되고..
DisplayMetrics dm = mContext.getResources().getDisplayMetrics();
int mDisplayWidth = dm.widthPixels - DpToPixel(mContext, 10);
mGridItemSize = mDisplayWidth / 3 ;
/*** DpToPixel 코드
public static int DpToPixel(Context context, float DP) {
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DP, context.getResources()
.getDisplayMetrics());
return (int) px;
}
***/
adapter set 해주는 액티비티 onCreate()
GridView gridView = findViewById(R.id.gridview1);
mSend_btn = findViewById(R.id.btn_send);
ImageAdapter adapter = new ImageAdapter(mPictureList);
gridView.setAdapter(adapter);
mPictureList는 이전 글에 썼던 이미지 경로나.. 동영상 경로를 가져오면 된다. glide에서 친절하게 썸네일을 만들어서 뿌려주니 경로만 담고 있어도 ok
grid_item.xml
http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
android:id="@+id/img_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintDimensionRatio="1:1"
android:scaleType="centerCrop"
/>
constrainDimensionRatio : 이미지의 가로세로 비율을 말한다
scaleType : 말그대로 센터 정렬 후 깨지는건 crop.
마지막으로 그리드뷰를 그리는 액티비티의 xml에 담을 그리드 뷰
android:id="@+id/gridview1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:numColumns="3"
android:verticalSpacing="3dp"
android:horizontalSpacing="3dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:layout_weight="1"
android:layout_margin="5dp"
/>
numColumns : 가로에 들어갈 데이터의 갯수.
verticalSpacing : 아이템 간 세로 틈
horizontalSpacing : 아이템 간 가로 틈
stretchMode : numColumns를 'auto-fit'로 설정했을 경우 남는 좌우 공간을 어떻게 분배할지 결정한다. 'columnWidth'는 남은 공간이 칼럼들에게 골고루 할당되며, 'spacingWidth'는 컬럼들에게 여백으로 남은 공간을 골고루 할당한다. // (검색결과)
'android' 카테고리의 다른 글
안드로이드 픽셀 구하기, 디피 구하기. (0) | 2019.04.17 |
---|---|
안드로이드 내부 디비에 있는 사진 및 동영상 경로 가져오기 (0) | 2019.04.17 |
핸드폰 내부에 있는 파일 전체 가져오기. (0) | 2019.04.17 |
안드로이드 서비스를 사용한 위젯 갱신 및 클릭펜딩인텐트 (4) | 2019.04.17 |
안드로이드 앱 두번 눌러 종료하기 (0) | 2018.12.12 |
- Total
- Today
- Yesterday
- MongoDB
- text 부분 색 칠하기
- React Native
- not found adb
- 데이터베이스
- ubunut android
- 클래스형 코드
- 귀찮아;;
- rn
- mac android
- https://hwan-shell.tistory.com/244
- 명령어
- 함수형 코드
- 자바
- react native state
- 안드로이드
- insert
- not starting .bash_profile
- https://medium.com/@limgyumin/%EC%BD%94%ED%8B%80%EB%A6%B0-%EC%9D%98-apply-with-let-also-run-%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80-4a517292df29
- 차번호 정규식
- nosql
- mongo db
- 구글 맵 경로 그리기
- adb 환경변수
- spannableText
- not working adb
- 구글 맵 선그리기
- Android
- ubunut 설치 link
- 차번호 정규표현식
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |