android RelativeLayout如何获得较小尺寸的窗口

问题描述

| 我无法使Theme.Dialog活动变小。 问题是我只想要一半的钱。 看下面的图片。 这是清单:
 <activity android:name=\".PopUpSettings\" 
          android:label=\"@string/app_name\" 
          android:theme=\"@android:style/Theme.Dialog\"
          android:screenOrientation=\"portrait\"
          android:configChanges=\"keyboardHidden|orientation\">
这是xml:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<RelativeLayout 
    xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:orientation=\"vertical\"
    android:layout_width=\"wrap_content\"
    android:layout_height=\"wrap_content\"
    android:paddingTop=\"15dp\"
    android:paddingLeft=\"15dp\"
    android:paddingRight=\"15dp\"
    android:paddingBottom=\"15dp\"
    >

    <com.hellberg.ptppservice.imageedit.ColorPicker 
        android:id=\"@+id/color_picker_popup_settings\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\" 
        android:layout_alignParentRight=\"true\"
        />

    <TextView android:id=\"@+id/exampeltext_popup_settings\"
        android:text = \"This is the best app in the world\"
        android:textSize=\"20sp\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\"
        android:layout_toLeftOf=\"@+id/color_picker_popup_settings\"
        />

    <Button android:id=\"@+id/fontleft_button_popup_settings\" 
        android:layout_width=\"50dp\"
        android:layout_height=\"50dp\"
        android:layout_alignParentLeft=\"true\"
        android:layout_alignParentBottom=\"true\"
        />

    <Button android:id=\"@+id/fontright_button_popup_settings\" 
        android:layout_width=\"50dp\"
        android:layout_height=\"50dp\"
        android:layout_alignParentRight=\"true\"
        android:layout_alignParentBottom=\"true\"
        />      

    <TextView android:id=\"@+id/textlogo_popup_settings\"
        android:text = \"©2011\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"wrap_content\"
        android:layout_centerHorizontal=\"true\"
        android:layout_alignParentBottom=\"true\"
        />      
</RelativeLayout>
这是屏幕:     

解决方法

        这将做您想要的。请注意,您将获得完整的窗口高度,因此除以2不会使其恰好是尺寸的一半。我尝试将您的布局除以3,看起来不错。
public class DialogExampleActivity extends Activity {   

    private int mWindowHeight;

    private static final int DIALOG_OPEN = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Display display = getWindowManager().getDefaultDisplay();        
        mWindowHeight = display.getHeight();

        showDialog(DIALOG_OPEN);
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        Dialog myDialog = new Dialog(DialogExampleActivity.this);

        switch (id) {
        case DIALOG_OPEN:
            myDialog.setContentView(R.layout.my_dialog);            
            myDialog.setCancelable(true);

            RelativeLayout rr = (RelativeLayout) myDialog.findViewById(R.id.relative_layout);
            LayoutParams params = rr.getLayoutParams();         
            params.height = mWindowHeight / 3;          
            rr.setLayoutParams(params);

            return myDialog;
        }

        return null;
    }
}
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...