Wednesday, 23 January 2013

Android element visibility not working properly

Hi I got problem with setting up a visibility. My xml file:
<?xml version="1.0" encoding="utf-8"?>  <FrameLayout      android:id="@+id/widget324"      android:layout_width="fill_parent"      android:layout_height="fill_parent"      android:background="@drawable/onbg"      xmlns:android=""  >    <Button android:id="@+id/topBtn"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_centerHorizontal="true">  </Button>    <VideoView      android:id="@+id/introvid"      android:layout_width="fill_parent"      android:layout_height="fill_parent">   </VideoView>     <ImageView      android:id="@+id/Kn8s"      android:visibility="invisible"      android:src="@drawable/kn8s"      android:layout_width="430.50dp"      android:layout_height="121.00dp"      android:layout_gravity="bottom|center_horizontal"      android:layout_marginBottom="10.00dp"      />   <ImageView        android:id="@+id/introimage"      android:src="@drawable/pcintro"      android:layout_width="215.25dp"      android:layout_height="197.00dp"      android:layout_gravity="center"      />    </FrameLayout>  
and my .java file is:
import (...)    public class Intro extends Activity {      VideoView vid;      /** Called when the activity is first created. */      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          overridePendingTransition(R.anim.fadein,R.anim.fadeout);          setContentView(R.layout.intro);          vid = (VideoView)findViewById(;          String urlpath = "android.resource://" + getPackageName() + "/" + R.raw.onbg;  vid.setVideoURI(Uri.parse(urlpath));          vid.start();          FrameLayout widget324 = (FrameLayout)findViewById(;          widget324.setOnTouchListener(new OnTouchListener() {              @Override              public boolean onTouch(View v, MotionEvent event) {                   if (event.getAction() == MotionEvent.ACTION_DOWN) {                          Intent OnIntent = new Intent(Intro.this, On.class);                          startActivity(OnIntent);                          Intro.this.finish();                  // TODO Auto-generated method stub                   }                  return true;              }});                final MediaPlayer mpGo = MediaPlayer.create(this, R.raw.intro);          mpGo.start();                      final ImageView productions = (ImageView)findViewById(;          productions.postDelayed(new Runnable() {                  public void run() {                      productions.findViewById(;                  }              }, 10500);                new Handler().postDelayed(new Runnable() {              @Override              public void run() {                      Intent OnIntent = new Intent(Intro.this, On.class);                      startActivity(OnIntent);                      Intro.this.finish();              }      }, 12000);               }   }    
Problem is that an element called here "(" should apear after 10,5 sec (10500) but it doesn't. I noticed that when time is set under 1 sec (999) it works fine! Also noticed that when I throw away video view the "Kn8s" element becomes visible after time that it should be! Why it doesn't work? It should be declared onStart method? or I don't know... is that about the software acceleration Android? Thx for every answer :)


Post a Comment