如何解决如何在 Android 的平板电脑和移动设备上调整 AlertDialog 的大小
我在我的应用程序中使用自定义警报。我想根据屏幕分辨率将其调整为标准尺寸。我已经实现了下面的方法,但它在横向模式下显示了平板电脑的全宽。应用程序支持手机的纵向和平板电脑的两个方向。如何调整到标准警报大小。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingRight="16dp"
android:layout_marginTop="24dp"
android:paddingLeft="20dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/updated_app"
android:fontFamily="@font/open_sans_semibold"
android:textSize="18sp"
android:textColor="#515151"
android:id="@+id/update_msg"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/version_msg"
android:fontFamily="@font/open_sans"
android:id="@+id/txt_version"
android:textSize="12sp"
android:textAlignment="textStart"
android:textColor="#515151"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="#000000"
android:fontFamily="@font/open_sans"
android:textSize="16sp"
android:text="@string/update_msg"
android:textAlignment="textStart"
/>
<LinearLayout
android:layout_width="match_parent"
android:gravity="end"
android:layout_marginTop="24dp"
android:layout_marginBottom="24dp"
android:layout_marginRight="10dp"
android:layout_height="40dp">
<TextView
android:id="@+id/cancel_update"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAlignment="gravity"
android:textAllCaps="true"
android:fontFamily="@font/open_sans_semibold"
android:textSize="14sp"
android:layout_marginRight="22dp"
android:text="Cancel"
android:textColor="#803377bb" />
<TextView
android:id="@+id/btn_update"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAlignment="center"
android:text="Update"
android:fontFamily="@font/open_sans_semibold"
android:textSize="14sp"
android:textAllCaps="true"
android:textColor="#3377bb"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
并将该警报称为:
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater =this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.update_alert,null);
dialogBuilder.setView(dialogView);
dialogBuilder.setCancelable(false);
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int displayWidth = displayMetrics.widthPixels;
int displayHeight = displayMetrics.heightPixels;
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.copyFrom(alertDialog.getWindow().getAttributes());
int dialogWindowWidth = (int) (displayWidth * 0.85f);
int dialogWindowHeight = (int) (displayHeight * 0.38f);
layoutParams.width = dialogWindowWidth;
layoutParams.height = dialogWindowHeight;
alertDialog.getWindow().setAttributes(layoutParams);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。