如何在Android中获得干净的顶角关闭按钮和格式按钮?

时间:2013-11-06 11:01:10

标签: android

我有两个问题。

1。)现在我有一个弹出窗口,右上角有一个X显示,但我不能让它显示在弹出窗口的右上角。如何获得所需的“X”按钮?

目前:http://i.imgur.com/zKN0cWv.png

期望:http://i.imgur.com/Lj5gHhY.png

2。)我的“顶部按钮”和“底部按钮”填满了屏幕的整个宽度,即使我有它来包装内容。有没有办法让按钮更窄? (实际上,我希望它们都更窄,但即使一个按钮的文本比另一个按钮的文本长,它们的宽度仍然相同)。它与我布置XML的方式有关吗?理想情况下,我希望在弹出窗口中有一个背景图像,但是当我放入图像时,图像也会进入3个文本视图中,这使我认为我没有一个非常好的XML文件。有谁知道如何解决这个问题?谢谢!

layout / popup.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/dialog"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

<TextView
    android:id="@+id/popup_header"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="15dp"
    android:text="@string/popup_message"
    android:textSize="20sp"
    android:textStyle="bold"
    android:textColor="#464646" >
</TextView>

<TextView
    android:id="@+id/popup_text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/popup_header"
    android:gravity="center_vertical|center_horizontal"
    android:text="@string/popup_message2"
    android:textSize="20sp"
    android:textColor="#464646" >
</TextView>

<TextView
    android:id="@+id/popup_text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_below="@+id/popup_text1"
    android:text="@string/popup_message3"
    android:textSize="20sp"
    android:textStyle="bold"
    android:textColor="#464646" >
</TextView>

<Button
    android:id="@+id/top_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/popup_text2"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="12dp"
    android:background="#f000ff"
    android:text="@string/top_button"
    android:textColor="#ffffff"
    android:textSize="20sp" >
</Button>

<Button
    android:id="@+id/bottom_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/top_button"
    android:layout_centerHorizontal="true"
    android:layout_gravity="center_horizontal"
    android:layout_marginTop="5dp"
    android:background="#f000ff"
    android:text="@string/bottom_button"
    android:textColor="#ffffff"
    android:textSize="20sp" >
</Button>

<Button
    android:layout_alignParentRight="true" android:text="@string/dismiss"
    android:textColor="#FFF" android:background="@drawable/round_button_background"
    android:gravity="center_vertical|center_horizontal"
    android:layout_margin="5dp" android:layout_height="25dp"
    android:layout_width="25dp" android:textSize="12sp" android:textStyle="bold"
    android:onClick="cancelActivity" >
</Button>

</RelativeLayout>

抽拉/ round_button_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
    <solid android:color="#9F2200" />
    <stroke android:width="3dp" android:color="#FFF" />
</shape>

值/ styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
  <style name="Theme.CustomDialog"     parent="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:padding">4dp</item>
    <item name="android:background">#f8adfc</item>
  </style>
</resources>

2 个答案:

答案 0 :(得分:0)

第一个问题的解决方案:

如果您想在左上角显示图片,请提供您提供的链接 对于这个,首先你在根布局中给出一个id,即在你声明对话框时的Relativelayout,现在这样的代码

<ImageView
        android:id="@+id/close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/dialog"
        android:background="@drawable/close" />

至于第二个问题,我可以看到你声明的按钮的宽度与父级匹配。首先使它为所有按钮的wrap_contect。如果这对您没有帮助,请动态为java代码本身的弹出窗口提供静态宽度

答案 1 :(得分:0)

// try this
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <RelativeLayout
        android:id="@+id/dialog"
        android:layout_width="wrap_content"
        android:layout_marginTop="7dp"
        android:layout_marginLeft="7dp"
        android:background="@android:color/white"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/popup_header"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:text="@string/popup_message"
            android:textSize="20sp"
            android:textStyle="bold"
            android:textColor="#464646" >
        </TextView>

        <TextView
            android:id="@+id/popup_text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_below="@+id/popup_header"
            android:gravity="center_vertical|center_horizontal"
            android:text="@string/popup_message2"
            android:textSize="20sp"
            android:textColor="#464646" >
        </TextView>

        <TextView
            android:id="@+id/popup_text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_below="@+id/popup_text1"
            android:text="@string/popup_message3"
            android:textSize="20sp"
            android:textStyle="bold"
            android:textColor="#464646" >
        </TextView>

        <Button
            android:id="@+id/top_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/popup_text2"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="12dp"
            android:background="#f000ff"
            android:text="@string/top_button"
            android:textColor="#ffffff"
            android:textSize="20sp" >
        </Button>

        <Button
            android:id="@+id/bottom_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/top_button"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="5dp"
            android:background="#f000ff"
            android:text="@string/bottom_button"
            android:textColor="#ffffff"
            android:textSize="20sp" />



    </RelativeLayout>
    <Button
        android:textColor="#FFFFFF"
        android:background="@drawable/round_button_background"
        android:layout_height="25dp"
        android:layout_width="25dp"
        android:textSize="12sp"
        android:textStyle="bold"
        android:onClick="cancelActivity"/>
</FrameLayout>