android 好看得dialog 样式
时间: 2023-06-30 07:13:40 浏览: 178
Android 中可以通过自定义样式来实现漂亮的 Dialog,可以参考以下步骤:
1. 创建一个自定义样式,例如:
```xml
<style name="CustomDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="android:windowBackground">@color/white</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@style/DialogAnimation</item>
<item name="android:background">@drawable/dialog_background</item>
</style>
```
2. 创建一个布局文件,例如:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/dialog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@color/black"
android:text="Dialog Title"
android:padding="16dp"
android:background="@drawable/dialog_title_background"/>
<TextView
android:id="@+id/dialog_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="@color/black"
android:text="Dialog Message"
android:padding="16dp"/>
<Button
android:id="@+id/dialog_ok"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ok"
android:textColor="@color/white"
android:background="@drawable/dialog_button_background"
android:padding="16dp"/>
</LinearLayout>
```
3. 创建一个 Dialog 类并设置样式和布局,例如:
```java
public class CustomDialog extends Dialog {
public CustomDialog(Context context) {
super(context, R.style.CustomDialog);
setContentView(R.layout.dialog_layout);
// 设置宽度为屏幕宽度的 80%
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.width = (int) (context.getResources().getDisplayMetrics().widthPixels * 0.8);
getWindow().setAttributes(layoutParams);
}
public void setTitle(String title) {
TextView titleTextView = findViewById(R.id.dialog_title);
titleTextView.setText(title);
}
public void setMessage(String message) {
TextView messageTextView = findViewById(R.id.dialog_message);
messageTextView.setText(message);
}
public void setOnOkClickListener(View.OnClickListener listener) {
Button okButton = findViewById(R.id.dialog_ok);
okButton.setOnClickListener(listener);
}
}
```
4. 在代码中使用自定义 Dialog:
```java
CustomDialog dialog = new CustomDialog(this);
dialog.setTitle("Dialog Title");
dialog.setMessage("Dialog Message");
dialog.setOnOkClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
```
参考以上步骤,自定义 Dialog 样式,可以实现漂亮的 Dialog。
阅读全文