寫代碼的四點: 1.明确需求。要做什麼? 2.分析思路。要怎麼做?(1,2,3……) 3.确定步驟。每一個思路要用到哪些語句、方法和對象。 4.代碼實作。用具體的語言代碼将思路實作出來。 學習新技術的四點: 1.該技術是什麼? 2.該技術有什麼特點?(使用需注意的方面) 3.該技術怎麼使用?(寫Demo) 4.該技術什麼時候用?(在Project中的使用場景 )
----------------------早計劃,早準備,早完成。-------------------------
代碼如下:
package com.wy.test.other;
import android.app.Dialog;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
/**
* 圓角的dialog
*/
public class RoundCornerDialog extends Dialog {
private static int default_width = 160; //預設寬度
private static int default_height = 120;//預設高度
public RoundCornerDialog(Context context, View layout, int style) {
this(context, default_width, default_height, layout, style);
}
public RoundCornerDialog(Context context, int width, int height, View layout, int style) {
super(context, style);
setContentView(layout);
Window window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.gravity = Gravity.CENTER;
window.setAttributes(params);
}
//圓角的dialog樣式,在values——》styles中設定
// <style name="RoundCornerDialog" parent="@android:style/Theme.Dialog">
// <item name="android:windowFrame">@null</item>
// <item name="android:windowIsFloating">true</item>
// <item name="android:windowIsTranslucent">true</item>
// <item name="android:windowNoTitle">true</item>
// <item name="android:background">@android:color/transparent</item>
// <item name="android:windowBackground">@android:color/transparent</item>
// <item name="android:backgroundDimEnabled">true</item>
// <item name="android:backgroundDimAmount">0.6</item>
// </style>
}
在項目中的應用:
1.在values——》styles中設定style樣式;
<!--圓角的dialog-->
<style name="RoundCornerDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:backgroundDimAmount">0.6</item>
</style>
2.在drawable中定義shape_circle_corner_white檔案(圓角的背景)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的顔色 -->
<solid android:color="#ffffff" />
<!-- 設定按鈕的四個角為弧形 -->
<!-- android:radius 弧形的半徑 -->
<corners android:radius="16dip" />
<!-- padding:Button裡面的文字與Button邊界的間隔 -->
<!--<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp"/>-->
</shape>
3.定義彈出的RoundCornerDialog的layout布局檔案;
<?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/shape_circle_corner_white"
android:gravity="center"
android:orientation="vertical">
<RelativeLayout
android:layout_width="222dp"
android:layout_height="132dp"
android:background="@drawable/shape_circle_corner_white">
<TextView
android:id="@+id/tv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="37dp"
android:textColor="#666666"
android:textSize="17dp" />
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_logout_confirm"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="确定"
android:textColor="#e01b2b"
android:textSize="17dp" />
<TextView
android:id="@+id/tv_logout_cancel"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="取消"
android:textColor="#e01b2b"
android:textSize="17dp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:layout_alignTop="@id/ll"
android:background="#e4e4e4" />
<View
android:layout_width="0.5dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:background="#e4e4e4" />
</RelativeLayout>
</LinearLayout>
4.在activity中展示圓角的dialog
/**
* 展示圓角的dialog
*/
private void showDialog() {
View view = View.inflate(this, R.layout.dialog_two_btn, null);
final RoundCornerDialog roundCornerDialog = new RoundCornerDialog(this, 0, 0, view, R.style.RoundCornerDialog);
roundCornerDialog.show();
roundCornerDialog.setCanceledOnTouchOutside(false);// 設定點選螢幕Dialog不消失
roundCornerDialog.setOnKeyListener(keylistener);//設定點選傳回鍵Dialog不消失
TextView tv_message = (TextView) view.findViewById(R.id.tv_message);
TextView tv_logout_confirm = (TextView) view.findViewById(R.id.tv_logout_confirm);
TextView tv_logout_cancel = (TextView) view.findViewById(R.id.tv_logout_cancel);
tv_message.setText("這是個圓角的dialog");
//确定
tv_logout_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
roundCornerDialog.dismiss();
}
});
//取消
tv_logout_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
roundCornerDialog.dismiss();
}
});
}
DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() {
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
return true;
} else {
return false;
}
}
};
附:
詳細使用Demo(https://blog.csdn.net/qq941263013/article/details/80901277)
---------------------------------------------------------------------------------------------------------------------------
早計劃,早準備,早完成。 歡迎關注!交流!Star!
GitHub:https://github.com/wangyang0313
微信公衆号:一個靈活的胖子MrWang
簡書:https://www.jianshu.com/u/e5e733d79b96