RelativeLayout & Animation

Basic Tutorials concerning: GUI, Views, Activites, XML, Layouts, Intents, ...

RelativeLayout & Animation

Postby Loules » Fri Aug 07, 2009 3:18 pm

Hi Everyone,

I Cant understand of the animations work the following code works, but It make the view "flash" at the end of the animation...
Any Solution ? what am I missing ?

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2.  
  3.  
  4. import android.app.Activity;
  5.  
  6. import android.os.Bundle;
  7.  
  8. import android.view.View;
  9.  
  10. import android.view.Window;
  11.  
  12. import android.view.View.OnClickListener;
  13.  
  14. import android.view.animation.Animation;
  15.  
  16. import android.view.animation.AnimationUtils;
  17.  
  18. import android.widget.ImageView;
  19.  
  20. import android.widget.RelativeLayout;
  21.  
  22.  
  23.  
  24. public class FlowPlus extends Activity {
  25.  
  26.        
  27.  
  28.         public static boolean isDetailsShowed = false;
  29.  
  30.        
  31.  
  32.     public static ImageView barre_bas;
  33.  
  34.     public static ImageView user;
  35.  
  36.     public static ImageView job;
  37.  
  38.     public static ImageView vignettes;
  39.  
  40.     public static ImageView arrow;
  41.  
  42.     public static ImageView details;
  43.  
  44.    
  45.  
  46.     public static RelativeLayout main;
  47.  
  48.     public static RelativeLayout details_layout;
  49.  
  50.     public static RelativeLayout.LayoutParams lp;
  51.  
  52.    
  53.  
  54.     private final class animationListener implements Animation.AnimationListener {
  55.  
  56.         private int type;
  57.  
  58.        
  59.  
  60.         private animationListener(int type) {
  61.  
  62.                 this.type = type;
  63.  
  64.         }
  65.  
  66.        
  67.  
  68.         public void onAnimationStart(Animation animation) {
  69.  
  70.         }        
  71.  
  72.        
  73.  
  74.         public void onAnimationEnd(Animation animation) {
  75.  
  76.                 switch(this.type) {
  77.  
  78.                 case 1:
  79.  
  80.                         lp.leftMargin=200;             
  81.  
  82.                         details_layout.setLayoutParams(lp);
  83.  
  84.                         System.out.println(arrow.getRight());
  85.  
  86.                         arrow.setImageResource(R.drawable.arrow2);
  87.  
  88.                         isDetailsShowed=true;
  89.  
  90.                         break;
  91.  
  92.                 case 2:
  93.  
  94.                         lp.leftMargin=-200;
  95.  
  96.                         details_layout.setLayoutParams(lp);
  97.  
  98.                         arrow.setImageResource(R.drawable.arrow);
  99.  
  100.                         isDetailsShowed=false;
  101.  
  102.                         break;
  103.  
  104.                 }      
  105.  
  106.         }
  107.  
  108.         public void onAnimationRepeat(Animation animation) {
  109.  
  110.         }
  111.  
  112.     }
  113.  
  114.    
  115.  
  116.     @Override
  117.  
  118.     public void onCreate(Bundle savedInstanceState) {          
  119.  
  120.         super.onCreate(savedInstanceState);
  121.  
  122.         getWindow().requestFeature(Window.FEATURE_NO_TITLE);   
  123.  
  124.         setContentView(R.layout.main);
  125.  
  126.  
  127.  
  128.         final Animation slide_bot = AnimationUtils.loadAnimation(this, R.anim.slide_bot);
  129.  
  130.         slide_bot.setAnimationListener(new animationListener(0));
  131.  
  132.         final Animation slide_right = AnimationUtils.loadAnimation(this, R.anim.slide_right);
  133.  
  134.         slide_right.setAnimationListener(new animationListener(1));
  135.  
  136.         final Animation slide_left = AnimationUtils.loadAnimation(this, R.anim.slide_left);
  137.  
  138.         slide_left.setAnimationListener(new animationListener(2));
  139.  
  140.        
  141.  
  142.         barre_bas = (ImageView) findViewById(R.id.barre_bas);
  143.  
  144.         user = (ImageView) findViewById(R.id.user);
  145.  
  146.         arrow = (ImageView) findViewById(R.id.job);
  147.  
  148.         vignettes = (ImageView) findViewById(R.id.vignettes);
  149.  
  150.         arrow = (ImageView) findViewById(R.id.arrow);
  151.  
  152.         details_layout = (RelativeLayout) findViewById(R.id.details_layout);
  153.  
  154.         main = (RelativeLayout) findViewById(R.id.main);
  155.  
  156.         //main.setPersistentDrawingCache(ViewGroup.PERSISTENT_ANIMATION_CACHE);    
  157.  
  158.        
  159.  
  160.         lp = (android.widget.RelativeLayout.LayoutParams) details_layout.getLayoutParams();
  161.  
  162.         details = (ImageView) findViewById(R.id.details);    
  163.  
  164.        
  165.  
  166.         barre_bas.setOnClickListener(new OnClickListener() {
  167.  
  168.                         public void onClick     (View v) {
  169.  
  170.                                 barre_bas.startAnimation(slide_bot);
  171.  
  172.                         }
  173.  
  174.         });  
  175.  
  176.        
  177.  
  178.         arrow.setOnClickListener(new OnClickListener() {
  179.  
  180.                         public void onClick(View v) {
  181.  
  182.                                 if(!isDetailsShowed) {
  183.  
  184.                                         System.out.println(arrow.getRight());
  185.  
  186.                                         details_layout.startAnimation(slide_right);
  187.  
  188.                                 } else {
  189.  
  190.                                         System.out.println(arrow.getRight());
  191.  
  192.                                         details_layout.startAnimation(slide_left);
  193.  
  194.                                 }
  195.  
  196.                         }
  197.  
  198.         });
  199.  
  200.     }
  201.  
  202. }
Parsed in 0.043 seconds, using GeSHi 1.0.8.4


Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2.  
  3. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  4.  
  5.    android:layout_width="640px"
  6.  
  7.    android:layout_height="448px"
  8.  
  9.    android:id="@+id/main"
  10.  
  11.    android:background="#e6e6e6">
  12.  
  13.  
  14.  
  15.     <ImageView  
  16.  
  17.         android:id="@+id/job"
  18.  
  19.             android:layout_width="200px"
  20.  
  21.             android:layout_height="fill_parent"
  22.  
  23.             android:background="#e6e6e6"
  24.  
  25.    />
  26.  
  27.    
  28.  
  29.     <ImageView  
  30.  
  31.                 android:id="@+id/vignettes"
  32.  
  33.                 android:src="@drawable/vignettes"      
  34.  
  35.             android:layout_width="420px"
  36.  
  37.             android:layout_height="fill_parent"
  38.  
  39.             android:layout_toRightOf="@id/job"
  40.  
  41.             android:layout_marginLeft="20px"
  42.  
  43.             android:scaleType="fitXY"
  44.  
  45.    />
  46.  
  47.    
  48.  
  49.     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  50.  
  51.             android:layout_width="420px"
  52.  
  53.             android:layout_height="448px"
  54.  
  55.             android:id="@+id/details_layout"
  56.  
  57.             android:layout_marginLeft="-200px">
  58.  
  59.              
  60.  
  61.             <ImageView  
  62.  
  63.                 android:id="@+id/details"
  64.  
  65.                     android:layout_width="400px"
  66.  
  67.                     android:layout_height="448px"
  68.  
  69.                     android:background="#e6e6e6"
  70.  
  71.                 />
  72.  
  73.              
  74.  
  75.             <ImageView  
  76.  
  77.                 android:id="@+id/arrow"
  78.  
  79.                         android:src="@drawable/arrow"
  80.  
  81.                     android:layout_width="20px"
  82.  
  83.                     android:layout_height="wrap_content"
  84.  
  85.                         android:layout_toRightOf="@id/details"
  86.  
  87.                     android:layout_marginTop="188px"
  88.  
  89.                 />
  90.  
  91.                
  92.  
  93.         </RelativeLayout>
  94.  
  95.  
  96.  
  97.         <ImageView  
  98.  
  99.             android:id="@+id/barre_bas"
  100.  
  101.             android:layout_width="fill_parent"
  102.  
  103.             android:layout_height="wrap_content"
  104.  
  105.             android:src="@drawable/barre_bas"
  106.  
  107.             android:layout_alignBottom="@id/job"
  108.  
  109.         />
  110.  
  111.        
  112.  
  113.     <ImageView  
  114.  
  115.             android:id="@+id/user"
  116.  
  117.             android:layout_width="wrap_content"
  118.  
  119.             android:layout_height="wrap_content"
  120.  
  121.             android:src="@drawable/user"
  122.  
  123.             android:layout_alignRight="@id/vignettes"
  124.  
  125.             android:layout_marginLeft="-152px"
  126.  
  127.    />
  128.  
  129.  
  130.  
  131. </RelativeLayout>
Parsed in 0.007 seconds, using GeSHi 1.0.8.4



Regards, Loules
Loules
Once Poster
Once Poster
 
Posts: 1
Joined: Thu Jun 04, 2009 9:41 am

Top

Return to Novice Tutorials

Who is online

Users browsing this forum: No registered users and 4 guests