问题描述
我在我的应用程序中使用自定义警报。我想根据屏幕分辨率将其调整为标准尺寸。我已经实现了下面的方法,但它在横向模式下显示了平板电脑的全宽。应用程序支持手机的纵向和平板电脑的两个方向。如何调整到标准警报大小。
<?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 (将#修改为@)