网上很多,只是为了日后自己开发方便。不需要的可以自动忽略哈
package com.yundiankj.userdefineddialog;
import android.app.Activity;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.Selection;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Activity mActivity;
private Button btn_edit_name;
//修改设备名称的popwindow
private PopupWindow pop_edit_ble_name;
private EditText et_ble_name;
private TextView tv_ok;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mActivity=this;
init();
}
private void init(){
btn_edit_name= (Button) mActivity.findViewById(R.id.btn_edit_name);
btn_edit_name.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_edit_name:
initEditBleNamePopupWindow();
WindowManager.LayoutParams lp;
//设置背景颜色变暗
lp = mActivity.getWindow().getAttributes();
lp.alpha = 0.5f;
mActivity.getWindow().setAttributes(lp);
pop_edit_ble_name.setAnimationStyle(R.style.PopupAnimation);
pop_edit_ble_name.showAtLocation(mActivity.findViewById(R.id.lly_main), Gravity.CENTER | Gravity.CENTER_HORIZONTAL, 0, 0);
pop_edit_ble_name.update();
break;
}
}
/**
* 修改设备名称的popupwindow
*/
private void initEditBleNamePopupWindow() {
LayoutInflater inflater = LayoutInflater.from(mActivity);
View edit_ble_name_layout = inflater.inflate(R.layout.pop_edit_ble_name, null);
et_ble_name = (EditText) edit_ble_name_layout.findViewById(R.id.et_ble_name);
tv_ok = (TextView) edit_ble_name_layout.findViewById(R.id.tv_ok);
edit_ble_name_layout.invalidate();
pop_edit_ble_name = new PopupWindow(edit_ble_name_layout, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
//实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0x00000000);
//设置PopupWindow弹出窗体的背景
pop_edit_ble_name.setBackgroundDrawable(dw);
pop_edit_ble_name.setOutsideTouchable(true);
pop_edit_ble_name.setFocusable(true);
Editable etext = et_ble_name.getText();
Selection.setSelection(etext, etext.length());//让光标在文字后面
pop_edit_ble_name.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams lp = mActivity.getWindow().getAttributes();
lp.alpha = 1;
mActivity.getWindow().setAttributes(lp);
}
});
tv_ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mActivity, "确定", Toast.LENGTH_SHORT).show();
pop_edit_ble_name.dismiss();
}
});
}
}
源码下载:http://download.youkuaiyun.com/detail/qq_30543115/9769576