2016-06-22 37 views
2

我正在創建一個遊戲,並在其中使用了很多對話框。對話框以更簡單的設置組成主菜單,然後組成整個活動。雖然這些對話框有一個灰色的輪廓,但它真的很煩人,另外當從一個對話框轉到另一個對話框時,它會縮小並隨着一個對話框消失而另一個對話框再次出現。我該如何製作更好的自定義對話框?

如何刪除輪廓並使轉換更平滑?如果對話不可能,另一種方法是什麼?我使用連接到擴展Java類Dialog

編輯

Java的自定義佈局:

public class MenuDialog extends Dialog implements View.OnClickListener { 
    Context con; 
    Clicker c; 
    public MenuDialog(Context c, Clicker game) { 
     super(c); 
     this.con = c; 
     this.c = game; 
     Window window = this.getWindow(); 
     window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     show(); 
    } 


    Button stat, gem, cash, shop, powerup, settings; 

    @Override 
    protected void onCreate(Bundle sis){ 
     super.onCreate(sis); 
     setContentView(R.layout.menu); 
     setButtons(); 

    } 

    private void setButtons(){ 
     stat = (Button) findViewById(R.id.bStats); 
     gem = (Button) findViewById(R.id.bGems); 

     gem.setOnClickListener(this); 
     stat.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.bStats: 
       StatDialog sd = new StatDialog(con,c); 
       sd.show(); 
       break; 
      case R.id.bGems: 
       IAPDialog iapd = new IAPDialog(con, c); 
       iapd.show(); 
       break; 
      //other buttons 

     } 
     dismiss(); 
    } 

} 

XML:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:visibility="visible" 
    android:id="@+id/relativeLayout" 
    android:gravity="center_horizontal" 
    android:background="@drawable/phone_like_bc" 
    android:orientation="horizontal"> 


    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:id="@+id/linearLayout5" 

     android:layout_marginTop="51dp"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/bStats" 
      android:layout_alignParentTop="true" 
      android:layout_toLeftOf="@+id/bGems" 
      android:background="@drawable/stat_button" 
      android:layout_toStartOf="@+id/bGems" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="@string/stats" 
      android:id="@+id/textView17" 
      android:layout_below="@+id/bStats" 
      android:layout_alignLeft="@+id/bStats" 
      android:layout_alignStart="@+id/bStats" /> 

     <Button 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/bShop" 
      android:background="@drawable/shop" 
      android:layout_below="@+id/textView17" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="@string/shop" 
      android:textAlignment="center" 
      android:id="@+id/textView18" 
      android:layout_alignTop="@+id/textView16" 
      android:layout_alignLeft="@+id/bShop" 
      android:layout_alignStart="@+id/bShop" /> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:id="@+id/linearLayout" 
     android:layout_marginTop="51dp" 
     > 

     <Button 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:background="@drawable/gem" 
      android:id="@+id/bGems" 
      android:layout_centerVertical="true" 
      android:layout_toRightOf="@+id/linearLayout5" 
      android:layout_toEndOf="@+id/linearLayout5" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="@string/gems" 
      android:id="@+id/textView15" 
      android:layout_alignBaseline="@+id/textView20" 
      android:layout_alignBottom="@+id/textView20" 
      android:layout_toLeftOf="@+id/bPowerUp" 
      android:layout_toStartOf="@+id/bPowerUp" 
      android:layout_gravity="center_horizontal" /> 

     <Button 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/bPowerUp" 
      android:background="@drawable/lightning" 
      android:layout_alignTop="@+id/linearLayout" 
      android:layout_toLeftOf="@+id/bSettings" 
      android:layout_toStartOf="@+id/bSettings" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="@string/powerups" 
      android:id="@+id/textView16" 
      android:layout_alignBaseline="@+id/bSettings" 
      android:layout_alignBottom="@+id/bSettings" 
      android:layout_toLeftOf="@+id/bSettings" 
      android:layout_toStartOf="@+id/bSettings" /> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="51dp" 
     android:gravity="center"> 

     <Button 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/bCash" 
      android:background="@drawable/cash" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:text=" " /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="@string/cash" 
      android:id="@+id/textView19" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_gravity="center_horizontal" /> 

     <Button 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:id="@+id/bSettings" 
      android:background="@drawable/settings" 
      android:layout_below="@+id/bCash" 
      android:layout_alignLeft="@+id/bCash" 
      android:layout_alignStart="@+id/bCash" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="@string/settings" 
      android:id="@+id/textView20" 
      android:layout_alignBottom="@+id/bCash" 
      android:layout_alignLeft="@+id/textView19" 
      android:layout_alignStart="@+id/textView19" /> 
    </LinearLayout> 
</LinearLayout> 

有兩個對話框類XML和java的。我添加了這兩個來表明我已經知道如何添加這些類,但是我需要知道如何刪除對話框的輪廓,並且我需要知道如何平滑兩個對話框之間的轉換。他們也有相同的背景。

回答

1

您可以使用DialogFragments代替對話框,它們可以作爲片段使用,您可以自定義它們。詳細瞭解如何使用對話框片段https://developer.android.com/reference/android/app/DialogFragment.html

如果您不喜歡Android文檔,那麼您有很多教程可以在Google中創建自己的DialogFragments。

+0

當不關閉對話框主,這真的看起來更好。當按下擴展對話框上的後退按鈕時,它們會消失,所以主要的依然存在。它確實做了很多改變到DialogFragment – Zoe