- 首先导入
require "import"
import "android.graphics.drawable.BitmapDrawable"
import "android.view.animation.LayoutAnimationController"
import "android.view.animation.Animation"
import "android.view.animation.AnimationSet"
import "android.view.animation.AlphaAnimation"
import "android.view.animation.TranslateAnimation"
import "android.view.animation.TranslateAnimation"
- 代码
--把弹出定义成方法 方便复用
function 弹窗2()
fr={
CardView,
background="#00000000",
id="Rspop",
layout_width='';--布局宽度
layout_height='';--布局高度
elevation='0dp';--阴影属性
{
LinearLayout;
orientation='vertical';--重力属性
layout_width='fill';--布局宽度
layout_height='fill';--布局高度
background='#00000000';--背景
gravity="bottom";--弹窗位置
layout_marginBottom="-10dp";
{
CardView;--卡片控件
elevation='9dp';--阴影属性
layout_width="fill",
layout_height="290dp",
radius='20dp';--卡片圆角
{
TextView;
text="标题";
textColor="#ff000000";
layout_marginTop='20dp';--卡片边距
layout_gravity="center|top";
textSize="24sp";
};
--这里可以写别的代码
{
CardView;
layout_height="45dp";
layout_width="220dp";
id="an";
layout_gravity="center|bottom";
layout_marginBottom='25dp';--卡片边距
radius='22.5dp';--卡片圆角
elevation="1dp";
cardBackgroundColor=0xff5dbdff;
{
TextView;
text="按钮";
textColor="#ffffffff";
layout_gravity="center";
textSize="20sp";
};
};
};
};
};
--定义一个弹窗为PopupWindow类型的弹窗
pop=PopupWindow(activity)
--给弹窗一个自定义布局
pop.setContentView(loadlayout(fr))
--修复bug,千万不能删除
pop.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
--设置显示宽度
pop.setWidth(activity.width)
--设置显示高度
pop.setHeight(activity.height)
--点击PopupWindow外面区域 true为消失
pop.setOutsideTouchable(false)
--修复bug,千万不能删
pop.setBackgroundDrawable(BitmapDrawable(loadbitmap("xxx.jpg")))
--设置pop可获得焦点
pop.setFocusable(true)
--设置pop可触摸
pop.setTouchable(true)
--设置弹窗显示位置
pop.showAtLocation(view,Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL,0,0)
--上升动画
--相关参数,请自行手册查询
Rs=TranslateAnimation(0,0,activity.height,0)
--动画时间,也就是上升动画的快慢
Rs.setDuration(200)
--动画开始执行
Rspop.startAnimation(Rs);
--动画结束回调
an.onClick=function()
print("单击事件")
end
end
--弹窗2() --不能在启动事件直接调用会报错
--但是可以写一个单击事件单击后调用该函数 如下:
--[[
ID.onClick=function()
弹窗2()
end
]]
--也可以在启动事件直接调用
ti=Ticker()
ti.Period=50
ti.onTick=function()ti.stop()
弹窗2() --调用
end
ti.start()
1 条评论
这个注释爱了