1

私はアプリケーションを持っています、それはボタンを持っています、それが押されるとデフォルトのダイアログ形状でダイアログを起動します、私はダイアログのデフォルト形状を楕円形に変更し、それに特別なスタイルを適用することができるのだろうか、

以下に添付された画像で説明されているように:

1- デフォルトのダイアログ形状:

ここに画像の説明を入力

2-楕円形のダイアログ形状(これを達成しようとしています):

ここに画像の説明を入力

私の対話コード:

 final Dialog dialog = new Dialog(context);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);           
        dialog.setContentView(R.layout.custom_dialog);

 TextView text = (TextView) dialog.findViewById(R.id.dialog_text);
 text.setText(Html.fromHtml(getString(R.string.text_4)));

 ImageView image = (ImageView) dialog.findViewById(R.id.image);
 image.setImageResource(R.drawable.pic);

 Button dialogButton = (Button) dialog.findViewById(R.id.dialog_Button);

 dialogButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        dialog.dismiss();
                }
            });

    dialog.show();
             }
        });

    }

デフォルト ダイアログのスタイル コード:

 <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
     <stroke android:width="2dp" android:height="2dp" android:color="#B22222" /> 
       <solid android:color="#FCE6C9" /> 
        <padding android:left="2dp" android:top="2dp" android:right="2dp"
         android:bottom="2dp" /> 
     <corners android:radius="5dp" /> 
    </shape>

9 パッチ イメージを使用するのではなく、コードでこれを行うことを望んでいるので、必要に応じてディラオジの寸法を制御し、その中のテキストを調整するのが簡単になります。

アドバイスをいただければ幸いです。

4

5 に答える 5

0

このメソッドは、現在試しているメソッドと似ています。custom_dialog.xmlで、相対レイアウトにandroid:background = "@ drawable/ovaldialog"を指定します。

また、ovaldialog.xmlで、android:shape = "oval"を指定してスタイルを編集するために指定しているのと同じパラメーターを指定し、android:topLeftRadius = "8dp"やandroid:bottomRightRadius="10dpなどのコーナーにもパラメーターを指定してみてください。 "そして、希望する種類の形状が得られるまで、これらの値を試してみてください。ダイアログに赤い色を付けるには、幅2 / 3dpのストロークとandroid:colorの値を指定します。

お役に立てれば

于 2012-08-15T21:38:01.813 に答える
0

Androidでこれを行う方法は正確にはわかりませんが、Javaで使用するアプローチは、JFrameまたはJDialogでレンダリングされたサーフェスを透明にしてから、独自のカスタムシェイプを内部に描画することです. それらを透明にするために、私はAWTUtilities.setWindowOpacityを使用します

この記事では、フレームまたはダイアログがレンダリングされる前にデスクトップをキャプチャし、それを使用してフレームにパッチを適用するなど、別のアイデアを見つけることができます。

http://today.java.net/pub/a/today/2008/03/18/translucent-and-shape-swing-windows.html

詳しくは:

http://java.sun.com/developer/technicalArticles/GUI/translucent_shape_windows/

Android用ではなく、実装がありますが、役立つ場合があります。

http://www.codeproject.com/KB/java/shape-transparent-jframe.aspx

于 2012-08-08T01:05:07.743 に答える
0

ナイスアイデア。Android で、アクティビティに透明な背景を与えるには、これをマニフェスト ファイルに入れます。

<activity android:name=".MyActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" />

次に、そのアクティビティのレイアウト ファイルに、これを追加します。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<ImageView
android:id="@+id/myImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/myRoundBackground" />

<TextView
android:id="@+id/myImageViewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/myImageView"
android:layout_alignTop="@+id/myImageView"
android:layout_alignRight="@+id/myImageView"
android:layout_alignBottom="@+id/myImageView"
android:layout_margin="1dp"
android:gravity="center"
android:text="Hello"
android:textColor="#000000" />

</RelativeLayout>

次に、id myImageViewText を使用して TextView にテキストをプログラムで設定できます。

于 2012-08-08T01:12:07.287 に答える
0

楕円形にスライスされた画像の透明な背景がうまくいくと思います。ボタンを楕円形の画像の左側に配置します。

于 2012-08-15T05:44:48.320 に答える
0

このクイック アクション メニューのチュートリアルをご覧ください。このチュートリアルを形状 = 楕円形の背景で適用してみてください。あなたが達成しようとしているものを手に入れることができると思います。


于 2012-08-14T09:29:18.247 に答える