我要求在对话框的右上角显示带箭头形状的自定义对话框。我谷歌了,因此我得到了相同的,但它的 POPUP窗口不是 DIALOG 。
因为,当对话框打开时,我必须禁用对话框后面的背景,在这种情况下弹出窗口不可用。呀,我也可以用弹出窗口禁用背景触摸。但是,我认为对话是更好的解决方案。
我已成功在屏幕上的特定位置打开对话框,现在,我只需要设置对话框中的箭头(右上角的三角形)。
我怎么能做到这一点?
感谢。
答案 0 :(得分:0)
<?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:background="@drawable/dialogbox"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/your_image_arrow" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="16dp"
android:text="Do you want to logout"
android:textSize="15dp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/customDialogCancel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/customDialogOk"
android:layout_toStartOf="@+id/customDialogOk"
android:layout_weight="1"
android:background="@drawable/buttonview"
android:text="Cancel"
android:textAlignment="center"
android:textColor="#00bfff"
android:textStyle="bold" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/darker_gray" />
<Button
android:id="@+id/customDialogOk"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_weight="1"
android:background="@drawable/buttonview"
android:text="Logout"
android:textAlignment="center"
android:textColor="#00bfff"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
并在您的活动中这样做:
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
// Custom Android Allert Dialog Title
Button dialogButtonCancel = (Button) dialog.findViewById(R.id.customDialogCancel);
Button dialogButtonOk = (Button) dialog.findViewById(R.id.customDialogOk);
// Click cancel to dismiss android custom dialog box
dialogButtonCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
// Your android custom dialog ok action
// Action for custom dialog ok button click
dialogButtonOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(CategoryActivity.this,
LoginActivity.class);
startActivity(intent);
finish();
}
});
dialog.show();
}
});
我的对话框有取消和注销按钮。你可以编写自己的函数。希望这会有所帮助。
答案 1 :(得分:0)
这里使用这个我为你创建了一个自定义对话框。根据您更改图像: 创建一个dialog.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
android:layout_gravity="end"
/>
</LinearLayout>
现在从您的活动
创建对话框View view = getLayoutInflater().inflate(R.layout.dialog,null);
final AlertDialog myDialog = new AlertDialog.Builder(TestActivity.this)
.setView(view)
.create();
infoDialog.show();
Window window = myDialog.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
//change the value of x and y to change the position of dialog box on the screen
wlp.x = 100;
wlp.y = 100;
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);