有什么方法可以在android的框架中使用默认的alertdialog按钮(取消和保存)高度和宽度..
我的意思是路径中的somwhere
框架/碱/核心/ RES / RES
我不是在寻找自定义alertDialog。 我只需要减少statandard alertdialog按钮的宽度...... 有什么办法??从2天开始拉我的头发:(
我尝试修改frameworks / base / core / res / res / layout / alert_dialog.xml
但我所做的改变不起作用
下面是alert_dialog.xml文件代码
<com.android.internal.widget.WeightedLinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parentPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="9dip"
android:paddingBottom="3dip"
android:paddingLeft="3dip"
android:paddingRight="1dip"
android:majorWeight="0.65"
android:minorWeight="0.9">
<LinearLayout android:id="@+id/topPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="54dip"
android:orientation="vertical">
<LinearLayout android:id="@+id/title_template"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginTop="6dip"
android:layout_marginBottom="9dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip">
<ImageView android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingTop="6dip"
android:paddingRight="10dip"
android:src="@drawable/ic_dialog_info" />
<com.android.internal.widget.DialogTitle android:id="@+id/alertTitle"
style="?android:attr/textAppearanceLarge"
android:singleLine="true"
android:ellipsize="end"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<ImageView android:id="@+id/titleDivider"
android:layout_width="match_parent"
android:layout_height="1dip"
android:visibility="gone"
android:scaleType="fitXY"
android:gravity="fill_horizontal"
android:src="@android:drawable/divider_horizontal_dark" />
<!-- If the client uses a customTitle, it will be added here. -->
</LinearLayout>
<LinearLayout android:id="@+id/contentPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ScrollView android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="2dip"
android:paddingBottom="12dip"
android:paddingLeft="14dip"
android:paddingRight="10dip"
android:overScrollMode="ifContentScrolls">
<TextView android:id="@+id/message"
style="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip" />
</ScrollView>
</LinearLayout>
<FrameLayout android:id="@+id/customPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<FrameLayout android:id="@+android:id/custom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:paddingBottom="5dip" />
</FrameLayout>
<LinearLayout android:id="@+id/buttonPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="4dip"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="4dip"
android:paddingLeft="2dip"
android:paddingRight="2dip"
android:useLargestChild="true">
<LinearLayout android:id="@+id/leftSpacer"
android:layout_weight="0.25"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone" />
<Button android:id="@+id/button1"
android:layout_width="0dip"
android:layout_gravity="left"
android:layout_weight="1"
android:maxLines="2"
android:layout_height="wrap_content" />
<Button android:id="@+id/button3"
android:layout_width="0dip"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:maxLines="2"
android:layout_height="wrap_content" />
<Button android:id="@+id/button2"
android:layout_width="0dip"
android:layout_gravity="right"
android:layout_weight="1"
android:maxLines="2"
android:layout_height="wrap_content" />
<LinearLayout android:id="@+id/rightSpacer"
android:layout_width="0dip"
android:layout_weight="0.25"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
</com.android.internal.widget.WeightedLinearLayout>
答案 0 :(得分:3)
无需创建自定义布局,请尝试以下操作:
创建res / values / dimens.xml:
<resources>
<dimen name="alertdialog_button_width">150dp</dimen>
<dimen name="alertdialog_button_height">150dp</dimen>
</resources>
然后添加以下代码段:
private void setButtonSize(AlertDialog dialog) {
Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
int height = getResources().getDimensionPixelSize(R.dimen.alertdialog_button_height);
int width = getResources().getDimensionPixelSize(R.dimen.alertdialog_button_width);
button.setHeight(height);
button.setWidth(width);
}
如果您正在使用DialogFragment,请将getDialog()
转换为AlertDialog
并将其传递给setButtonSize
。
您还可以指定第三个参数来传递按钮ID(BUTTON_NEGATIVE,BUTTON_NEUTRAL等)
答案 1 :(得分:0)
AlertDialog dialog = new AlertDialog.Builder(context);
dialog.setContentView(R.layout.custom);//put this layout here
dialog.setTitle("Title...");
阅读此http://www.mkyong.com/android/android-custom-dialog-example/
<强>更新: - 强>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:onClick="showOk"
android:text="Ok"
android:scaleX=".5"
android:scaleY=".5"/>
在我的应用中看到我这样做
android:scaleX=".5"
android:scaleY=".5"
所以你可以像这样设置按钮大小..增加并根据需要减小尺寸。
答案 2 :(得分:0)
可以只使用自定义对话框。因为我们无法默认对话框。在自定义对话框中,您可以使用自定义对话框和自定义尺寸。