1
我想實現一個幫助覆蓋我的應用程序。 它應該是這樣的:How do I create a help overlay like you see in a few Android apps and ICS?覆蓋對話框 - 對齊視圖
final Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setContentView(R.layout.coach_mark);
dialog.setCanceledOnTouchOutside(true);
//for dismissing anywhere you touch
View masterView = dialog.findViewById(R.id.coach_mark_master_view);
masterView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
dialog.show();
這工作得很好。 coach_mark.xml的RelativeLayout顯示在我通過setContentView()設置的現有佈局上。 現在我想在現有佈局的相應視圖附近調整coach_mark.xml的視圖,以便動態地對分辨率和屏幕尺寸做出反應。這是我所嘗試過的:
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.BELOW,R.id.view_of_main_layout);
view_of_the_overlay.setLayoutParams(lp);
但是,視圖只顯示在屏幕中間。 我唯一可以實現的就是將視圖對齊到屏幕底部,但這不是我想要做的。
感謝您的幫助。
好的我已經試過了,但現在疊加層的視圖只顯示在左下角。 – Gingerbread123321
showAtLocation有4個參數,使用第一個作爲錨點視圖,第二個用於重力,並使用偏移量x和y作爲最終位置。 –
但我用view_of_main_layout作爲錨點。所以如果我不輸入一個特殊的偏移量,彈出窗口應該顯示在錨點的左下角,而不是屏幕上,我是對嗎? – Gingerbread123321