2

アプリケーションのカスタムダイアログを作成しました。そのアプリケーションを通常のSamsungGalaryAceで実行している間は、そのデバイスで適切に表示されますが、Motorola Atrixでそのアプリを実行しようとしている間、カスタムダイアログボックスは境界線で適切に表示されません。。。カスタムダイアログが含まれているMotorolaAtrixエミュレータの画像をご覧ください。 ここに画像の説明を入力してください

カスタムダイアログの境界線を削除する必要がありますか、それとも任意のデバイスでカスタムダイアログのみを表示するために他に何をする必要がありますか?カスタムダイアログから境界線を削除する必要がある場合は、その方法を教えてください。

ありがとう。

4

3 に答える 3

3

はい、border.And を削除して試すことができます。requestWindowFeature(Window.FEATURE_NO_TITLE); また、ダイアログを拡張して、ダイアログに別のクラスを使用していることを確認してください。.fix the height and with for your dialog and then try

しかし、あなたが言ったように、モトローラのデバイスだけが違うように見えます。それでは、何が問題なのかを判断するのは困難です. 私はあなたと共有したい重要なこと.私はモトローラマイルストーンのアプリケーションを開発していました.それを完成させた後、私はタブレットにインストールしました.それからダイアログのサイズとその外観も変わります. そして、これはカスタム ダイアログだけでなく、プロパティが設定されていないプログレス ダイアログでも同様でした。

編集済み

ダイアログ クラスとそのレイアウトを作成する

public class DisplayDialog extends Dialog implements {
private ImageButton cancel,submit;
private Context context;
private ProgressDialog pd;

public DisplayDialog(Context c) {
   super(c, R.style.Theme_Dialog_Translucent);
    context = c;
}
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setCanceledOnTouchOutside(false);
    setContentView(R.layout.dialog);
    email_id = (EditText) findViewById(R.id.email_id);
    cancel = (ImageButton) findViewById(R.id.btn_cancel);
    cancel.setOnClickListener(this);
}

}

次に、アクティビティからそのオブジェクトを作成し、必要な場所で呼び出すだけです

DisplayDialog dd=new DisplayDialog(this);

dd.show()
于 2011-12-13T11:41:15.260 に答える
2

私はこれが答えられたことを知っていますが、ここに私がそれをした方法があります...

Motorola のすべての携帯電話 X2、Razr でこれを見ました。間違いなく、Motorola のスタイルのバグのようです。

独自のスタイルを作成し、\android-sdk\platforms\android-10\data\res\drawable-hdpi から panel_background をコピーしてドローアブルに配置することで修正しました。@android:drawable/panel_background を使用して参照すると、Eclipse はコンパイルされません。

スタイル.xml

<style name="Theme.CustomDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@drawable/panel_background</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

次に、Theme パラメータを追加してダイアログを呼び出します。

Dialog dialog = new Dialog(this, R.style.Theme_CustomDialog);

Motorolaの問題が修正されました!

于 2012-05-11T19:32:46.707 に答える
1

The thing is that there are some troubles in Motorola styles, that override default Android styles. So, you should just override this styles once again.

As for me, I created my own theme and overrided android:windowBackground parameter. You can use your own background image, but I just took default image from Android resources. The resulting style looked like this:

<style name="Theme.GreenDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@drawable/panel_background</item>
</style>
于 2012-03-01T16:39:11.990 に答える