2014-02-16 21 views
0

我正在製作一個自定義對話框,該對話框將使用從底部到中心的動畫彈出。一切都很好,但動畫對話框會在屏幕的頂部。我希望它只在中心。這是我的代碼。動畫進入頂部之後的對話框

public class CustomDialogClass extends Dialog implements 
    android.view.View.OnClickListener { 

    public Activity c; 
    public Dialog d; 
    public Button yes, no; 
    private Animation mAnimationBottomCentre; 

    public CustomDialogClass(Activity a) { 
    super(a,R.style.DialogAnimation); 
    // TODO Auto-generated constructor stub 
    this.c = a; 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.dialog_view); 

// LinearLayout ll = (LinearLayout) findViewById(R.id.mainlayout); 
// mAnimationBottomCentre = AnimationUtils.loadAnimation(c, R.anim.slide_in_left); 
// ll.startAnimation(mAnimationBottomCentre); 
    yes = (Button) findViewById(R.id.btn_yes); 
    no = (Button) findViewById(R.id.btn_no); 
    yes.setOnClickListener(this); 
    no.setOnClickListener(this); 

    } 

    @Override 
    public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.btn_yes: 
     c.finish(); 
     break; 
    case R.id.btn_no: 
     dismiss(); 
     break; 
    default: 
     break; 
    } 
    dismiss(); 
    } 
} 

我從我的活動呼籲對話框如下:

public void Show_Dialog(View v) { 
CustomDialogClass cdd = new CustomDialogClass(MainActivity.this); 
cdd.getWindow().getAttributes().windowAnimations = com.example.chintan.khetiya.android.custom_dialog.R.style.DialogAnimation; 
cdd.getWindow().setGravity(Gravity.CENTER); 
cdd.show(); 
} 

這是我的動畫文件

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fillAfter="true" 
    android:interpolator="@android:anim/decelerate_interpolator" > 
    <translate 
     android:duration="2000" 
     android:fillAfter="true" 
     android:fromYDelta="100%p" 
     android:startOffset="100" 
     android:toYDelta="50%p" /> 
    </set> 

,這是風格的XML

<style name="DialogAnimation"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:windowEnterAnimation">@anim/slide_up_bottom_to_centre</item> 
</style> 

佈局對話框

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:id="@+id/mainlayout" 

    android:layout_height="80dp" 
    android:background="#E60000" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/txt_dia" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_margin="10dp" 
     android:text="Do you realy want to exit ?" 
     android:textColor="@android:color/white" 
     android:textSize="15dp" 
     android:textStyle="bold" > 
    </TextView> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:background="#3E80B4" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/btn_yes" 
      android:layout_width="100dp" 
      android:layout_height="30dp" 
      android:background="@android:color/white" 
      android:clickable="true" 
      android:text="Yes" 
      android:textColor="#5DBCD2" 
      android:textStyle="bold" /> 

     <Button 
      android:id="@+id/btn_no" 
      android:layout_width="100dp" 
      android:layout_height="30dp" 
      android:layout_marginLeft="5dp" 
      android:background="@android:color/white" 
      android:clickable="true" 
      android:text="No" 
      android:textColor="#5DBCD2" 
      android:textStyle="bold" /> 
    </LinearLayout> 

</LinearLayout> 

可以請人幫忙如何在中心動畫後顯示對話框只

回答