有谁知道如何创建一个如上图所示的对话框?
- 圆角。
- 透明背景。
- 没有标题、按钮、边框。
- 淡入——延迟5秒——淡出。
*我见过toast、弹出窗口、对话框、警告对话框,这些最适合上面的哪一个?:)
如果可以提供一些代码片段会很好,我对 android 很陌生 :)
有谁知道如何创建一个如上图所示的对话框?
*我见过toast、弹出窗口、对话框、警告对话框,这些最适合上面的哪一个?:)
如果可以提供一些代码片段会很好,我对 android 很陌生 :)
这根本不是问题。只需创建具有延迟和淡入淡出的第 9 个可绘制补丁,并将其作为对话框的背景。
对于自定义对话框检查http://www.c-sharpcorner.com/UploadFile/2fd686/androd-dialogs/
private void createCustomDialog(){
//Create a dialog object
final Dialog dialog = new Dialog(MainActivity.this);
//Set its layout
dialog.setContentView(R.layout.custom_dialog_layout);
//Set the title
dialog.setTitle("This is custom layout");
//Make it cancelable
dialog.setCancelable(true);
//We need to dismiss the dialog so we add a listener to the ok button
dialog.findViewById(R.id.okButton).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
dialog.show();
}
}
对于深色 alpha 背景,您可以创建一个可绘制对象。下面的代码将为您提供带圆角的半透明背景。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<gradient
android:startColor="#AA000000"
android:endColor="#AA000000"
android:angle="-90"
android:type="linear"
/>
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
对于自动隐藏部分,您可以使用
Animation anim = new AlphaAnimation(1,0);
anim.setDuration(300);
anim.setStartOffset(5000);
anim.setInterpolator(new LinearInterpolator());
anim.setFillAfter(false);
myView.startAnimation(anim);
尝试这个
使用您想要的内容创建 XML,然后将透明图像设置为
我正在为您提供图片,请使用此图片
和
声明 PopupWindow 类型的字段。PopupWindow 弹出窗口;
在这里夸大你的布局
View v = inflatter.inflate(R.layout.yourlayout, null);
将布局设置为弹出窗口
v1.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int height1 = v1.getMeasuredHeight();
popup= new PopupWindow(v, (int) (width * 0.8), height1, true);
popup.showAtLocation(mainlayout, Gravity.CENTER, 0, 0);
mainlayout
是您的活动视图组
这是我在我的应用程序中使用的一段代码。
示例我在我的应用程序中使用了类似的东西
自定义 Toast 将为您做所有事情,只需准备您的 xml 并将其设置为 Toast,这是一个示例:
public class CustomToast {
public CustomToast(Context ctx, CharSequence text) {
LayoutInflater inflater = LayoutInflater.from(ctx);
View layout = inflater.inflate(R.layout.toast_layout, null);
TextView txt = (TextView) layout.findViewById(R.id.toastText);
txt.setText(text);
Toast myToast = new Toast(ctx.getApplicationContext());
myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 100);
myToast.setDuration(Toast.LENGTH_SHORT);
myToast.setView(layout);
myToast.show();
}
}