11.2주차
📌 기말고사에는 AVD로 실행 결과 제출,,,,,,,,,,,,,,,
기타 위젯
프로그래스바, 시크바, 레이팅바
- 프로그래스바 : 작업의 진행 상황을 바나 원 형태로 제공
- 시크 바 : 프로그래스바와 대부분 비슷, 사용자 터치로 임의 조절 가능
- 레이팅바 : 진행 상황을 별 모양으로 표시
이 바는 자바와 연동이 되어야 의미가 있으나 기본적인 모양과 용도만 기억하자
-> 프로그래스바 xml
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="20"
android:secondaryProgress="50"/>
- style : 바 형태로 만들어줌
- max : 바의 최대값을 100으로
- progress : 처음 출력값
- secondaryProgress : progress 보다 연하게 살짝 나와있음
-> 시크바 xml
<SeekBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:progress="20" />
-> 레이팅바 xml
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:rating="1.5"
android:stepSize="0.5" />
- rating : 초기값 별 개수 설정
스크롤뷰
수직으로 스크롤하는 기능, 수평으로 스크롤하는 수평스크롤뷰가 따로있음 -> 주의할 점은 스크롤뷰에는 하나의 위젯만 넣을 수 있음
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="버튼1" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="버튼2" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="버튼3" />
<Button
android:id="@+id/button4"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="버튼4" />
<Button
android:id="@+id/button5"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="버튼5" />
<Button
android:id="@+id/button6"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="버튼6" />
<Button
android:id="@+id/button7"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="버튼7" />
</LinearLayout>
</ScrollView>
<img src=https://user-images.githubusercontent.com/96654391/168759998-af2780a0-ea71-45fe-a965-67ad3de8ef7b.png” width=”300”>
슬라이딩드로어
슬라이딩드로어의 사전적 의미는 서랍으로, 위젯들을 서랍처럼 열어서 보여주거나 닫아서 감춤 -> 일반적인 형태를 잘 사용해야된다. handler에는 handle 명이 들어가며 버튼 id는 hanlder 명이 되어야 하고, content는 레이아웃 아이디가 되어야 한다.
->xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="여기는 서랍 밖입니다." />
<SlidingDrawer
android:id="@+id/slidingdrawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:content="@+id/content"
android:handle="@+id/handle"
android:orientation="vertical" >
<Button
android:id="@+id/handle"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="서랍 손잡이" />
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="여기는 서랍 안입니다."
android:textColor="#000000"/>
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
꼭 handle과 content를 맞춰야 작동함을 주의 해야된다.
뷰플리퍼
안에 여러개의 위벳을 배치한 후, 필요에 따라서 화면을 왼쪽에서 오른쪽으로 밀어서 하나의 위젯씩 화면에 보여주는 방식의 뷰 컨테이너
->xml
<?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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/btnPrev"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=" 이전화면 " />
<Button
android:id="@+id/btnNext"
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=" 다음화면 " />
</LinearLayout>
<ViewFlipper
android:id="@+id/viewFlipper1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000" ></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00" ></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0000FF" ></LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/dog" />
</ViewFlipper>
</LinearLayout>
->java
package com.cookandroid.viewflipper;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ViewFlipper;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnPrev, btnNext;
final ViewFlipper vFlipper;
setTitle("2116313-손수경");
btnPrev = (Button) findViewById(R.id.btnPrev);
btnNext = (Button) findViewById(R.id.btnNext);
vFlipper = (ViewFlipper) findViewById(R.id.viewFlipper1);
btnPrev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vFlipper.showPrevious();
}
});
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vFlipper.showNext();
}
});
}
}
- ViewFlipper의 이벤트 기능에는 showNext()와 showPrev() 가 있다.
버튼 클릭하면 옆화면 또는 뒷화면으로 넘어감
댓글남기기