2020/12/17 - [안드로이드] - [안드로이드]화면계속켜짐 상태로 만들어보기 FLAG_KEEP_SCREEN_ON
이번 시간에는 글자변환에 애니메이션 효과를 쉽게 해주는 TextSwitcher를 이용해서
글자변환 애니메이션을 만들어보겠습니다.
양쪽에 버튼이 있고, 중간에 TextSwitcher가 있습니다.
왼쪽버튼은 이전값으로 오른쪽은 앞쪽 값으로 변경이 되는 기능을 가졌습니다.
1. 화면구현(activity_main.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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_centerVertical="true"
android:layout_marginStart="3dp"
android:layout_marginBottom="295dp"
android:orientation="horizontal">
<Button
android:id="@+id/backBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="이전" />
<TextSwitcher
android:id="@+id/textSwitcher"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="80dp"
android:inAnimation="@android:anim/slide_in_left"
/>
<Button
android:id="@+id/nextBtn"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="다음" />
</LinearLayout>
</RelativeLayout>
2.기능구현(MainActivity.java)
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.TextSwitcher;
import android.widget.TextView;
import android.widget.ViewSwitcher;
public class MainActivity extends AppCompatActivity {
private TextSwitcher textSwitcher;
private Button nextButton;
private Button backButton;
private int stringIndex = 0;
private String[] row = {"1", "2", "3", "4", "5", "6"};
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textSwitcher = findViewById(R.id.textSwitcher);
nextButton = findViewById(R.id.nextBtn);
backButton = findViewById(R.id.backBtn);
//이전 버튼 클릭 리스너
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//배열이 첫번째이면 마지막값 가져온다
if(stringIndex == 0){
stringIndex = row.length -1;
textSwitcher.setText(row[stringIndex]);
}else{ //아니면 이전값 셋팅
textSwitcher.setText(row[--stringIndex]);
}
}
});
//다음 버튼 클릭 리스너
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//배열이 마지막이면 초기화
if(stringIndex == row.length -1){
stringIndex = 0;
textSwitcher.setText(row[stringIndex]);
}else{ //아니면 다음 값을 셋팅
textSwitcher.setText(row[++stringIndex]);
}
}
});
//텍스트스위쳐 기본 뷰 생성
textSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
@Override
public View makeView() {
textView = new TextView(MainActivity.this);
textView.setTextColor(Color.BLACK); //색상설정
textView.setTextSize(60);//글씨크기 설정
textView.setGravity(Gravity.CENTER_HORIZONTAL); //위치설정
return textView;
}
});
//배열 첫번째 값 셋팅
textSwitcher.setText(row[stringIndex]);
}
}
3.실행화면
[안드로이드]ViewFlipper 화면전환 쉽게 만드는법 (0) | 2020.12.20 |
---|---|
[안드로이드]라이브러리 찾아 등록하는 방법 (0) | 2020.12.19 |
[안드로이드]화면계속켜짐 상태로 만들어보기 FLAG_KEEP_SCREEN_ON (0) | 2020.12.17 |
[안드로이드]SeekBar RGB 글씨 색상조절 만들어보기 (0) | 2020.12.16 |
[안드로이드]JobService 스케쥴작업 만들어보기 (0) | 2020.12.15 |
댓글 영역