本文借鉴秀源码:http://www.xiufm.com/thread-15571-1-3.html

图片借鉴秀源码gif



先来看main.java

class Main3Activity : AppCompatActivity() {    private fun show2() {        var button1Dialog: Dialog = Dialog(this,R.style.ButtomDialog)        var view: View = LayoutInflater.from(this).inflate(R.layout.dialog_content_circle,null)        button1Dialog.setContentView(view)        var layoutParams: ViewGroup.MarginLayoutParams = view.layoutParams as ViewGroup.MarginLayoutParams        layoutParams.width = resources.displayMetrics.widthPixels - DensityUtil.dp2px(this,16f)        layoutParams.bottomMargin = DensityUtil.dp2px(this,8f)        view.layoutParams = layoutParams        button1Dialog.setCanceledOnTouchOutside(true)        button1Dialog.window.setGravity(Gravity.BOTTOM)        button1Dialog.window.setWindowAnimations(R.style.BottomDialog_Animation)        button1Dialog.show()    }    private fun show1() {        var button1Dialog: Dialog = Dialog(this,R.style.ButtomDialog)        var view: View = LayoutInflater.from(this).inflate(R.layout.dialog_content_normal,null)        button1Dialog.setContentView(view)        var layoutParams: ViewGroup.LayoutParams = view.layoutParams        layoutParams.width = resources.displayMetrics.widthPixels        view.layoutParams = layoutParams        button1Dialog.window.setGravity(Gravity.BOTTOM)        button1Dialog.window.setWindowAnimations(R.style.BottomDialog_Animation)        button1Dialog.show()    }    override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main3)        initview()    }    private fun initview() {        btn_show_1.setOnClickListener{show1()}        btn_show_2.setOnClickListener{show2()}    }}
main.xml

<?xml version="1.0" encoding="utf-8"?>    
封装的像素类,听不错的:

object  DensityUtil {    /**     * dp转px     *     * @param context     * @param dpVal     * @return     */    fun dp2px(context: Context, dpFloat: Float): Int{        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dpFloat,context.resources.displayMetrics).toInt()    }    /**     * sp转px     *     * @param context     * @param spVal     * @return     */    fun sp2px(context: Context,spFloat: Float): Int{        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,spFloat,context.resources.displayMetrics).toInt()    }    /**     * px转dp     *     * @param context     * @param pxVal     * @return     */    fun px2dp(context: Context,pxFloat: Float): Float{        var scale : Float = context.resources.displayMetrics.density        return (pxFloat/scale)    }    /**     * px转sp     *     * @param pxVal     * @param pxVal     * @return     */    fun px2sp(context: Context,pxFloat: Float):Float{        return (pxFloat/context.resources.displayMetrics.scaledDensity)    }}
dialog_content_circle.xml

<?xml version="1.0" encoding="utf-8"?>                        
dialog_content_normal.xml

<?xml version="1.0" encoding="utf-8"?>                        
这些都放在drawlable文件里面
ic_alert.xml
<?xml version="1.0" encoding="utf-8"?>    

ic_edit.xml

<?xml version="1.0" encoding="utf-8"?>            

ic_star.xml
<?xml version="1.0" encoding="utf-8"?>    

ic_cricle

<?xml version="1.0" encoding="utf-8"?>                                

ic_send.xml
<?xml version="1.0" encoding="utf-8"?>        
ic_delete.xml

<?xml version="1.0" encoding="utf-8"?>    

基本上已经实现了从下面弹起的dialogButton!!!


更多相关文章

  1. android 输入对话框 确认对话框
  2. Android(安卓)自定义对话框
  3. android 底部弹出提示框的实现方式
  4. android PhoneGap JQuery Mobile Demo
  5. android 自定义侧边栏
  6. 显示倒计时的Dialog
  7. Android(安卓)强制下线功能 第一行代码
  8. android退出应用程序解决方案
  9. Android常用控件-DatePicker以及对话框的两种使用方法

随机推荐

  1. 直播软件源码android ui LinearLayout中
  2. Android ExpandableListView同时显示多种
  3. CheckBox设置颜色和自定义样式
  4. 如何在G1上安装非android market的apk
  5. Android 双进程守护
  6. Android RadioButton
  7. android绑定服务方法使用
  8. android studio 遇到的问题
  9. ERROR:Android Studio - “Unmappable cha
  10. android 无root截屏