2016-08-11 14 views
0

나는이 수업을 위해이 프로젝트를 진행 중이다.
당신은 바트 심슨의 이미지를 클릭하고 호머 심슨이 페이드 동안은 페이드 아웃.ImageViews를 교차 페이드하는 가장 좋은 방법

을 나는 그것이 가능 호머을 클릭 한 바트로 돌아갈 수 있도록하는 것입니다 도움이 필요 무엇.

내 코드가 Activity_xml

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.eric.layoutdemo2.MainActivity"> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/bart" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:src="@drawable/bart" 
     android:onClick="fade"/> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/homer" 
     android:layout_alignTop="@+id/bart" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:alpha="0" 
     android:src="@drawable/homer" 
     /> 
    </RelativeLayout> 

import android.support.v7.app.ActionBarActivity; 
     import android.os.Bundle; 
     import android.view.Menu; 
     import android.view.MenuItem; 
     import android.view.View; 
     import android.widget.ImageView; 


    public class MainActivity extends ActionBarActivity { 

     public void fade(View view) { 

     ImageView bart = (ImageView) findViewById(R.id.bart); 

     ImageView homer = (ImageView) findViewById(R.id.homer); 


     bart.animate().alpha(0f).setDuration(2000); 

     homer.animate().alpha(1f).setDuration(2000); 
     bart.bringToFront(); 
    } 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 




    } 
+0

기본적으로 표시되는 항목을 추적하여 어떤 그림을 퇴색해야하는지 알 수 있습니다. –

+0

내가 필요로하는 것은 homer를 클릭하고 바트로 돌아갈 수있는 것입니다. 그러나 나는 어떻게하는지 모릅니다? –

답변

1

간단한 주요 활동

, 당신은 객체 호머하는 OnClickListener를 정의해야하고 통화 페이드 기능을 트리거 할 때.

public class MainActivity extends ActionBarActivity implements View.OnClickListener{ 
    ImageView homer, bart; 

    private void fade(ImageView v1, ImageView v2) { 
     v1.animate().alpha(0f).setDuration(2000); 
     v2.animate().alpha(1f).setDuration(2000); 
     v2.bringToFront(); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     bart = (ImageView) findViewById(R.id.bart); 
     homer = (ImageView) findViewById(R.id.homer); 

     bart.setOnClickListener(this); 
     homer.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v){ 
     switch(v.getId()){ 
      case R.id.bart: 
       fade(bart, homer); 
        break; 

      case R.id.homer: 
       fade(homer, bart); 
        break; 
     } 
    } 
} 
+0

도움을 주셔서 감사합니다. –

+0

틱 의미 솔루션을 클릭하십시오 :) –

1

훨씬 쉬운 방법입니다. homer에 onclick 함수를 추가하고 .bringToFront();을 사용하여 바트의 infront을 가져 오십시오. homer가 보이고 바트가 바트가 아니기 때문에 바트가 infront이고 두 번째 함수가 유사하게 실행되지 않기 때문입니다. 바트에는 .bringToFront();을 사용하십시오. 나는 다른 이미지를 사용했다. 다음은 XML입니다.

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.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="com.example.pembatamang.myapplication.MainActivity" 
    tools:layout_editor_absoluteX="0dp" 
    tools:layout_editor_absoluteY="0dp"> 

    <ImageView 
     android:id="@+id/eevee" 
     android:layout_width="368dp" 
     android:layout_height="495dp" 
     android:alpha="0" 
     android:onClick="fade1" 
     android:src="@drawable/evee" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 

    <ImageView 
     android:id="@+id/squirtle" 
     android:layout_width="wrap_content" 
     android:layout_height="495dp" 
     android:onClick="fade" 
     android:src="@drawable/squirtle" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintLeft_toLeftOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" /> 


</android.support.constraint.ConstraintLayout> 

여기는 자바 코드입니다.

package com.example.pembatamang.myapplication; 


import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 

public class MainActivity extends AppCompatActivity { 

    public void fade(View view) { 
     ImageView squirtle1 = (ImageView) findViewById(R.id.squirtle); 
     ImageView eevee1 = (ImageView) findViewById(R.id.eevee); 
     squirtle1.animate().alpha(0f).setDuration(2000); 
     eevee1.animate().alpha(1f).setDuration(2000); 
     eevee1.bringToFront(); 
    } 

    public void fade1(View view) { 
     ImageView squirtle1 = (ImageView) findViewById(R.id.squirtle); 
     ImageView eevee1 = (ImageView) findViewById(R.id.eevee); 
     eevee1.animate().alpha(0f).setDuration(2000); 
     squirtle1.animate().alpha(1f).setDuration(2000); 
     squirtle1.bringToFront(); 
    } 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


    } 
}