728x90
반응형
안녕하세요~ 초보 코딩러 입니당~
오늘은 퀴즈앱에서 사용되는 간단한 애니메이션 효과를 넣어볼까 합니다.
우선 처음에는 이 모양대로 layout을 만들어 줍니다!
여기서
저는 색은 따로 Colors 에서 지정을 하여 colorPrimary , colorPrimaryDark , colorAccent 를 색을 지정해 준 색깔이고
drawble에서 끝을 둥굴게 하는 원형을 따로 만들어 준 상태입니다.
drawble에서 둥굴게 하는 것이 궁금하신 분들은 클릭!
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity"
android:background="@color/colorPrimary"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="퀴즈퀴즈퀴즈"
android:gravity="center"
android:textSize="16sp"
android:textStyle="bold"
android:textColor="@android:color/white"/>
</androidx.appcompat.widget.Toolbar>
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar">
<TextView
android:id="@+id/question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/category_background2"
android:padding="16dp"
android:text="TextView"
android:textSize="30dp"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/no_indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="16dp"
android:text="5/10"
android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:id="@+id/options_container"
android:layout_width="409dp"
android:layout_height="wrap_content"
android:layout_marginBottom="120dp"
android:background="@drawable/category_background2"
android:orientation="vertical"
android:padding="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/rounded_borders"
android:backgroundTint="#989898"
android:text="Button"
android:textColor="@android:color/black"/>
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/rounded_borders"
android:backgroundTint="#989898"
android:text="Button"
android:textColor="@android:color/black"/>
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/rounded_borders"
android:backgroundTint="#989898"
android:text="Button"
android:textColor="@android:color/black"/>
<Button
android:id="@+id/button4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@drawable/rounded_borders"
android:backgroundTint="#989898"
android:text="Button"
android:textColor="@android:color/black"/>
</LinearLayout>
<Button
android:id="@+id/next_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_margin="30dp"
android:text="NEXT!!"
android:textColor="@android:color/white"
android:textSize="20dp"
android:background="@drawable/rounded_corner"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/options_container" />
</androidx.constraintlayout.widget.ConstraintLayout>
그 다음에 java로 가줍니다.
ipublic class MainActivity extends AppCompatActivity {
private TextView question,noIndicator;
private LinearLayout optionsContainer;
private Button nextBtn;
private int count;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
question = findViewById(R.id.question);
noIndicator = findViewById(R.id.no_indicator);
optionsContainer = findViewById(R.id.options_container);
nextBtn = findViewById(R.id.next_btn);
nextBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count = 0;
playAnim(question,0);
}
});
}
private void playAnim(final View view, final int value){
view.animate().alpha(value).scaleX(value).scaleY(value).setDuration(500).setStartDelay(100).setInterpolator(new DecelerateInterpolator())
.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
if (value ==0 && count <4){
playAnim(optionsContainer.getChildAt(count),0);
count ++;
}
}
@Override
public void onAnimationEnd(Animator animation) {
if (value == 0){
playAnim(view,1);
}
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
}
}
이렇게 넣어주시면, 끄읕!
반응형
'앱 코딩' 카테고리의 다른 글
유니티) 어느 지점을 지나면 오브젝트 생성 (0) | 2021.04.12 |
---|---|
유니티) 다양한 오브젝트 연속으로 겹치지 않게 나오게 코딩하는 법 (0) | 2021.04.09 |
유니티_ 스코어 3등까지 나타내기 (0) | 2021.04.07 |
drawble로 라운드 보더 ( 코너 선) 만들기 (0) | 2021.03.30 |
drawble에서 라운트 코너 만들기 (0) | 2021.03.29 |