2016-06-22 10 views
2

私はゲームを作成しており、その中にはたくさんのダイアログがあります。ダイアログは、メインメニューをよりシンプルな設定で構成し、その全体のアクティビティを構成します。しかし、これらのダイアログは本当に面倒な灰色の輪郭を持っていて、あるダイアログから別のダイアログに行くときに消えて吹き飛び、もう1つは再び現れます。より良いカスタムダイアログを作成するにはどうすればよいですか?

アウトラインを削除してよりスムーズに移行させるにはどうすればよいですか?ダイアログでは不可能な場合は何が可能でしょうか?

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> 

2つのダイアログクラスがありXMLの両方と私は拡張するJavaクラスDialog

EDIT

のJavaに接続されたカスタムレイアウトを使用していますjava。クラスを追加する方法をすでに知っていることを示すために2つを追加しましたが、ダイアログのアウトラインを削除する方法を知っておく必要があり、2つのダイアログ間の遷移をスムーズにする方法を知る必要があります。彼らも同じ背景を持っています。

答えて

1

Dialogsの代わりにDialogFragmentsを使用できます。これらはFragmentsとして機能し、カスタマイズすることができます。ダイアログフラグメントの使用方法の詳細についてはhttps://developer.android.com/reference/android/app/DialogFragment.html

多くのチュートリアルは、Androidドキュメントが気に入らなければGoogleで独自のDialogFragmentsを作成するためのものです。

+0

ダイアログメインを閉じないと、これは本当にうまくいくように見えます。拡張ダイアログで「戻る」ボタンを押すと、メイン・ダイアログが閉じられます。 DialogFragmentに変更するのは本当に大変でした – Zoe

関連する問題