2017-02-28 3 views
0

캡처 버튼을 클릭하면 fadeIn-fadeOut과 같은 애니메이션을 만들고 싶습니다. animatedView에 android : alpha = "1.0", android : toAlpha = "0.0"으로 알파 1.0을 설정했지만 역상이 필요합니다. 여기 내 레이아웃 :애니메이션 alpha (SurfaceView 아래)가 작동하지 않습니다.

여기
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal"> 

<SurfaceView 
    android:id="@+id/preview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<View 
    android:id="@+id/animated_view" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/black" 
    android:alpha="0.0"/> 

<Button 
    android:id="@+id/button_capture" 
    android:layout_width="50dp" 
    android:layout_height="50dp" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_centerVertical="true" /> 
</RelativeLayout> 

내 애니메이션 XML :

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:anim/accelerate_interpolator"> 
<alpha 
    android:duration="500" 
    android:fromAlpha="0.0" 
    android:repeatCount="1" 
    android:repeatMode="reverse" 
    android:toAlpha="1.0" 
    /> 
</set> 

그리고 그 내가 그것을 실행하는 방법은 다음과 같습니다

animClick = AnimationUtils.loadAnimation(getApplicationContext(), 
      R.anim.click); 

@OnClick(R.id.button_capture) 
void onCaptureClick() { 
    camera.takePicture(null, null, jpegCallback); 
    animatedView.startAnimation(animClick); 
} 

을 그리고 아무 일도 발생하지, 내가 무슨 일을하고 있어요?

답변

0

애니메이션을 설정하는 것은 실제로 레이아웃을 올바르게 정렬하지 않은 것입니다. 레이아웃이 원하는대로되지는 않을지라도 레이아웃을 확인하십시오.하지만 어떻게 수정할지 이해할 수 있습니다.

너는 모든 것을 위해 높이 ==> match_parent를 넣을 수 있습니다. 따라서 애니메이션보기를 사용할 수없는 이유가 될 수 있습니다.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 

    <SurfaceView 
     android:id="@+id/preview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 

    <View 
     android:id="@+id/animated_view" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@mipmap/ic_launcher" 
     /> 

    <Button 
     android:id="@+id/button_capture" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" /> 
</RelativeLayout> 

업데이트 된 XML은 잘 작동합니다.

+0

뷰를 완전히 오버랩해야합니다. SurfaceView – Nikita

+0

업데이트 된 답변을 확인하실 수 있습니다.이 xml 파일을 사용하십시오. 도움이 되길 바랍니다. –