728x90
안녕하세요!
오늘은 안드로이드에서 이미지를 정렬해서 보여줄 수 있는 View인 StackView를 사용해보는 시간을 가지도록 하겠습니다.
먼저 아래 이미지들을 다운로드 후 res -> drawble 폴더 안에 넣어주세요.
먼저 xml파일입니다.
activity_stack.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<StackView
android:layout_width="match_parent"
android:layout_height="400dp"
android:id="@+id/stack_view"
android:layout_centerHorizontal="true"
/>
</RelativeLayout>
다음으로 아이템 xml파일입니다.
stack_item
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:cardCornerRadius="10dp">
<ImageView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_gravity="center"
android:scaleType="centerCrop"
android:src="@drawable/dog1" />
</androidx.cardview.widget.CardView>
다음으로 JAVA 파일입니다.
StackActivity.java
import android.os.Bundle;
import android.widget.StackView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class StackViewActivity extends AppCompatActivity {
StackView stackView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stack);
stackView = findViewById(R.id.stack_view);
StackItemAdapter itemAdapter = new StackItemAdapter(createImage(), StackViewActivity.this
, R.layout.stack_item);
stackView.setAdapter(itemAdapter);
}
private List<Integer> createImage(){
List<Integer> images = new ArrayList<>();
images.add(R.drawable.dog1);
images.add(R.drawable.dog2);
images.add(R.drawable.dog3);
images.add(R.drawable.dog4);
return images;
}
}
다음으로 어댑터 JAVA 파일입니다.
StackItemAdapter.java
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.List;
public class StackItemAdapter extends ArrayAdapter {
List<Integer> images;
Context context;
int itemLayout;
public StackItemAdapter(List<Integer> images, Context context, int resource){
super(context, resource);
this.images = images;
this.itemLayout = resource;
}
@Override
public int getCount() {
return images.size();
}
@Nullable
@Override
public Object getItem(int position) {
return images.get(position);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup viewGroup) {
if(convertView == null){
convertView = LayoutInflater.from(viewGroup.getContext()).inflate(itemLayout, viewGroup,
false);
}
Integer image = images.get(position);
ImageView imageView = convertView.findViewById(R.id.image_view);
imageView.setImageResource(image);
return convertView;
}
}
실행화면입니다.
보시다시피 스택 형태로 이미지를 정렬 후 슬라이드를 통해 이미지를 확인할 수 있습니다.
오늘 준비한 내용은 여기까지 입니다.
궁금한 점은 언제든지 댓글로 남겨주세요.
감사합니다 !
'안드로이드 자바' 카테고리의 다른 글
[Android][Java] 현재 위치의 위경도 Geocoder로 주소 변환하기 (0) | 2023.08.17 |
---|---|
[Java][Android] 확장형 리사이클러뷰 만들기 (0) | 2023.08.14 |
[Android][Java] 글자에 색을 입혀보기 ( Spannable 사용하기) (0) | 2023.08.06 |
[Android][Java] EditText 에서 작성 가능한 숫자 범위 제한하기 (0) | 2023.08.05 |
[Android][Java]유튜브 API를 이용해서 유뷰트 비디오 검색하기 (0) | 2023.08.04 |