Android Studio 버튼을 누를 때 애니메이션을 만들어 보십시오.
11597 단어 Android
개시하다
Android Studio 버튼에는 처음부터 누르는 동작이 있습니다.
하지만 자신의 버튼을 눌렀을 때의 동작을 해보고 싶으면 그 방법을 적어 놓으세요.
하고 싶은 일
나는 버튼을 눌렀을 때 사이즈를 줄이고 버튼을 눌렀을 때 사이즈를 복원하는 애니메이션을 만들고 싶다.
사용자 지정 버튼 범주 만들기
우선 단추를 눌렀을 때의 동작을 설명하기 위해 단추 종류를 계승한 사용자 정의 단추 종류를 만듭니다.
배경색과 텍스트가 잘 어울립니다.
CustomButton.java
public class CustomButton extends Button {
public CustomButton(Context context, AttributeSet attr) {
super(context, attr);
this.setBackgroundColor(Color.RED);
this.setText("カスタムボタン");
}
}
setPresed 다시 쓰기 방법
버튼 클래스에는 setPreseed 방법이 있습니다. 이 방법을 다시 써서 단추를 눌렀을 때의 처리를 설정할 수 있습니다.
CustomButton.java /* ボタンプレスイベント */
@Override
public void setPressed(boolean pressed) {
if (pressed) {
/* 押してる時 */
} else {
/* 放した時 */
}
super.setPressed(pressed);
}
setPresed 방법의 매개 변수는boolean형pressed가 있습니다.
단추를 눌렀을 때 진짜이고, 눌렀을 때 가짜이기 때문에if문구로 눌렀을 때의 처리와 눌렀을 때의 처리를 설명할 수 있습니다.
SccalleAnimation 클래스를 사용하여 애니메이션 내용 기술하기
이번에는 버튼을 누를 때만 치수가 바뀌어서 ScaleAnimation을 사용했습니다.
ScaleAnimation 클래스
Android Developers : https://developer.android.com/reference/android/view/animation/ScaleAnimation
참고로 Scale Animation 수준에는 객체 축척을 제어하는 애니메이션이라고 쓰여 있습니다.
즉, 버튼, 뷰의 확대 및 축소와 같은 애니메이션을 만들 수 있는 카테고리입니다.
ScleAnimation 클래스 사용 방법
※ ScaleAnimation 설정은 xml에서도 기술할 수 있지만, 제가 xml을 잘 못하니 자바로 기술하게 해주세요.
ScaleAnimation 클래스는 다음과 같이 선언합니다.ScaleAnimation scaleAnimation = new ScaleAnimation(
fromX, toX, fromY, toY,
pivotXType, pivotXvalue,
pivotYType, pivotYvalue
);
scaleAnimation.setDuration(150);
scaleAnimation.setRepeatCount(0);
scaleAnimation.setFillAfter(true);
this.startAnimation(scaleAnimation);
값
설명
fromX (float)
애니메이션 시작 시 가로 길이 표시 축척
toX (float)
애니메이션이 끝날 때 가로 길이 표시 축척
fromY (float)
애니메이션 시작 시 세로 배율
toY (float)
애니메이션이 끝날 때의 세로 표시 축척
pivotXType (int)
pivotXValue의 해석 방법
pivotXValue (float)
객체 축척의 X축 중심 좌표
pivotYType (int)
pivotYValue의 해석 방법
pivotYValue (float)
객체의 Y축 중심 좌표 축척
메서드 이름
설명
setDuration
애니메이션 시간.밀리초 설명
setRepeatCount
애니메이션 반복
setFillAfter
애니메이션이 끝날 때의 크기가 뷰에 직접 반영되는지 여부
startAnimation
애니메이션 시작
pivotXType, pivotYType 세 가지 중에서 선택합니다.
나는 버튼을 눌렀을 때 사이즈를 줄이고 버튼을 눌렀을 때 사이즈를 복원하는 애니메이션을 만들고 싶다.
사용자 지정 버튼 범주 만들기
우선 단추를 눌렀을 때의 동작을 설명하기 위해 단추 종류를 계승한 사용자 정의 단추 종류를 만듭니다.
배경색과 텍스트가 잘 어울립니다.
CustomButton.java
public class CustomButton extends Button {
public CustomButton(Context context, AttributeSet attr) {
super(context, attr);
this.setBackgroundColor(Color.RED);
this.setText("カスタムボタン");
}
}
setPresed 다시 쓰기 방법
버튼 클래스에는 setPreseed 방법이 있습니다. 이 방법을 다시 써서 단추를 눌렀을 때의 처리를 설정할 수 있습니다.
CustomButton.java /* ボタンプレスイベント */
@Override
public void setPressed(boolean pressed) {
if (pressed) {
/* 押してる時 */
} else {
/* 放した時 */
}
super.setPressed(pressed);
}
setPresed 방법의 매개 변수는boolean형pressed가 있습니다.
단추를 눌렀을 때 진짜이고, 눌렀을 때 가짜이기 때문에if문구로 눌렀을 때의 처리와 눌렀을 때의 처리를 설명할 수 있습니다.
SccalleAnimation 클래스를 사용하여 애니메이션 내용 기술하기
이번에는 버튼을 누를 때만 치수가 바뀌어서 ScaleAnimation을 사용했습니다.
ScaleAnimation 클래스
Android Developers : https://developer.android.com/reference/android/view/animation/ScaleAnimation
참고로 Scale Animation 수준에는 객체 축척을 제어하는 애니메이션이라고 쓰여 있습니다.
즉, 버튼, 뷰의 확대 및 축소와 같은 애니메이션을 만들 수 있는 카테고리입니다.
ScleAnimation 클래스 사용 방법
※ ScaleAnimation 설정은 xml에서도 기술할 수 있지만, 제가 xml을 잘 못하니 자바로 기술하게 해주세요.
ScaleAnimation 클래스는 다음과 같이 선언합니다.ScaleAnimation scaleAnimation = new ScaleAnimation(
fromX, toX, fromY, toY,
pivotXType, pivotXvalue,
pivotYType, pivotYvalue
);
scaleAnimation.setDuration(150);
scaleAnimation.setRepeatCount(0);
scaleAnimation.setFillAfter(true);
this.startAnimation(scaleAnimation);
값
설명
fromX (float)
애니메이션 시작 시 가로 길이 표시 축척
toX (float)
애니메이션이 끝날 때 가로 길이 표시 축척
fromY (float)
애니메이션 시작 시 세로 배율
toY (float)
애니메이션이 끝날 때의 세로 표시 축척
pivotXType (int)
pivotXValue의 해석 방법
pivotXValue (float)
객체 축척의 X축 중심 좌표
pivotYType (int)
pivotYValue의 해석 방법
pivotYValue (float)
객체의 Y축 중심 좌표 축척
메서드 이름
설명
setDuration
애니메이션 시간.밀리초 설명
setRepeatCount
애니메이션 반복
setFillAfter
애니메이션이 끝날 때의 크기가 뷰에 직접 반영되는지 여부
startAnimation
애니메이션 시작
pivotXType, pivotYType 세 가지 중에서 선택합니다.
public class CustomButton extends Button {
public CustomButton(Context context, AttributeSet attr) {
super(context, attr);
this.setBackgroundColor(Color.RED);
this.setText("カスタムボタン");
}
}
버튼 클래스에는 setPreseed 방법이 있습니다. 이 방법을 다시 써서 단추를 눌렀을 때의 처리를 설정할 수 있습니다.
CustomButton.java
/* ボタンプレスイベント */
@Override
public void setPressed(boolean pressed) {
if (pressed) {
/* 押してる時 */
} else {
/* 放した時 */
}
super.setPressed(pressed);
}
setPresed 방법의 매개 변수는boolean형pressed가 있습니다.단추를 눌렀을 때 진짜이고, 눌렀을 때 가짜이기 때문에if문구로 눌렀을 때의 처리와 눌렀을 때의 처리를 설명할 수 있습니다.
SccalleAnimation 클래스를 사용하여 애니메이션 내용 기술하기
이번에는 버튼을 누를 때만 치수가 바뀌어서 ScaleAnimation을 사용했습니다.
ScaleAnimation 클래스
Android Developers : https://developer.android.com/reference/android/view/animation/ScaleAnimation
참고로 Scale Animation 수준에는 객체 축척을 제어하는 애니메이션이라고 쓰여 있습니다.
즉, 버튼, 뷰의 확대 및 축소와 같은 애니메이션을 만들 수 있는 카테고리입니다.
ScleAnimation 클래스 사용 방법
※ ScaleAnimation 설정은 xml에서도 기술할 수 있지만, 제가 xml을 잘 못하니 자바로 기술하게 해주세요.
ScaleAnimation 클래스는 다음과 같이 선언합니다.ScaleAnimation scaleAnimation = new ScaleAnimation(
fromX, toX, fromY, toY,
pivotXType, pivotXvalue,
pivotYType, pivotYvalue
);
scaleAnimation.setDuration(150);
scaleAnimation.setRepeatCount(0);
scaleAnimation.setFillAfter(true);
this.startAnimation(scaleAnimation);
값
설명
fromX (float)
애니메이션 시작 시 가로 길이 표시 축척
toX (float)
애니메이션이 끝날 때 가로 길이 표시 축척
fromY (float)
애니메이션 시작 시 세로 배율
toY (float)
애니메이션이 끝날 때의 세로 표시 축척
pivotXType (int)
pivotXValue의 해석 방법
pivotXValue (float)
객체 축척의 X축 중심 좌표
pivotYType (int)
pivotYValue의 해석 방법
pivotYValue (float)
객체의 Y축 중심 좌표 축척
메서드 이름
설명
setDuration
애니메이션 시간.밀리초 설명
setRepeatCount
애니메이션 반복
setFillAfter
애니메이션이 끝날 때의 크기가 뷰에 직접 반영되는지 여부
startAnimation
애니메이션 시작
pivotXType, pivotYType 세 가지 중에서 선택합니다.
ScaleAnimation scaleAnimation = new ScaleAnimation(
fromX, toX, fromY, toY,
pivotXType, pivotXvalue,
pivotYType, pivotYvalue
);
scaleAnimation.setDuration(150);
scaleAnimation.setRepeatCount(0);
scaleAnimation.setFillAfter(true);
this.startAnimation(scaleAnimation);
Animation.ABSOLUTE: 왼쪽 상단에서 보이는 픽셀 절대값입니다.pivotX(Y) Value는 120
Animation.RELATIVE_TO_SELF: 내 치수 배율.pivotX(Y) Value 0.0f~1.0f 비율로 기술
Animation.RELATIVE_TO_PARENT: 모 치수의 배율입니다.pivotX(Y) Value 0.0f~1.0f 비율로 기술
ScaleAnimation scaleAnimation = new ScaleAnimation(
1.0f, 0.5f, 1.0f, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f
);
다음은 ScreAnimation 클래스를 사용하여 버튼을 누를 때의 확대 및 축소 설정에 대해 설명합니다.
CustomButton.java
/* ボタンプレスイベント */
@Override
public void setPressed(boolean pressed) {
if (pressed) {
/* 押してる時 */
ScaleAnimation scaleAnimation = new ScaleAnimation(
1.0f, 0.6f / 1.0f, 1.0f, 0.6f / 1.0f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f
);
scaleAnimation.setDuration(150);
scaleAnimation.setRepeatCount(0);
scaleAnimation.setFillAfter(true);
this.startAnimation(scaleAnimation);
} else {
/* 放した時 */
ScaleAnimation scaleAnimation = new ScaleAnimation(
0.6f / 1.0f, 1.0f, 0.6f / 1.0f, 1.0f,
Animation.RELATIVE_TO_SELF, 0.5f,
Animation.RELATIVE_TO_SELF, 0.5f
);
scaleAnimation.setDuration(150);
scaleAnimation.setRepeatCount(0);
scaleAnimation.setFillAfter(true);
this.startAnimation(scaleAnimation);
}
super.setPressed(pressed);
}
실행 결과
참고 문헌
안드로이드는 버튼에 간단하게'누르는 느낌'- Qita: https://qiita.com/hsakurai2/items/a4356bd7bf0aac26b0cd
Android Score Animation 확대 축소 애니메이션: https://akira-watson.com/android/scale-animation.html
Reference
이 문제에 관하여(Android Studio 버튼을 누를 때 애니메이션을 만들어 보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nhiroyasu/items/7756a59ec7eb3cb8b998
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
안드로이드는 버튼에 간단하게'누르는 느낌'- Qita: https://qiita.com/hsakurai2/items/a4356bd7bf0aac26b0cd
Android Score Animation 확대 축소 애니메이션: https://akira-watson.com/android/scale-animation.html
Reference
이 문제에 관하여(Android Studio 버튼을 누를 때 애니메이션을 만들어 보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nhiroyasu/items/7756a59ec7eb3cb8b998텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)