我发现了很多关于如何制作没有文本的自定义ProgressDialog的教程。创建一个带有自定义图像和消息的自定义ProgressDialog的最简单方法是什么?就像这样...
我发现了很多关于如何制作没有文本的自定义ProgressDialog的教程。创建一个带有自定义图像和消息的自定义ProgressDialog的最简单方法是什么?就像这样...
创建自定义对话框
如果你想要一个自定义设计的对话框,可以使用布局和部件元素为对话框窗口创建自己的布局。在定义好布局之后,将根View对象或布局资源ID传递给setContentView(View)。
例如,要创建右侧显示的对话框:
创建一个名为custom_dialog.xml的XML布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
这个XML定义了一个LinearLayout内部包含一个ImageView和一个TextView。 将上面的布局设置为对话框的内容视图,并为ImageView和TextView元素定义内容:
Context mContext = getApplicationContext();
Dialog dialog = new Dialog(mContext);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_dialog,
(ViewGroup) findViewById(R.id.layout_root));
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
builder = new AlertDialog.Builder(mContext);
builder.setView(layout);
alertDialog = builder.create();
使用AlertDialog来展示自定义布局,可以利用内置的AlertDialog功能,如管理按钮、可选择的列表、标题、图标等。
如需了解更多信息,请参考Dialog和AlertDialog.Builder类的参考文档。