下面的截图……哎,因为1080P在Windows 10上虽然适配了,但大部分软件并没有跟上,比如某个录制GIF的软件,所以这里有一定的偏移导致画面不完整,但效果大概就是这么一个效果了。
MainUI.java
首先需要这么一个类,在这里一些UI的滑动呀之类的都会定义。首先吧,定义好这些变量,当然了,实际开发过程中肯定需要哪一个就添加上哪一个的。
private Context context; // 上下文
private FrameLayout leftMenu; // 左边部分
private FrameLayout middleMenu; // 中间部分
private FrameLayout rightMenu; // 右边部分
private FrameLayout middleMask; // 蒙版效果
private Scroller mScroller; // 滑动动画
public static final int ID = 0; // ID
public static final int LEFT_ID = ID+0xaabbcc;
public static final int MIDDLE_ID = ID+0xaaccbb;
public static final int RIGHT_ID = ID+0xccbbaa;
构造函数也是不能少的。
public MainUI(Context context) {
super(context);
initView(context);
}
public MainUI(Context context, AttributeSet attrs) {
super(context, attrs);
initView(context);
}
initView就是用来初始化视图的,相应的功能我都写在注释上了,就不多废话了。
// 初始化视图
private void initView(Context context){
this.context=context;
mScroller = new Scroller(context,new DecelerateInterpolator());
leftMenu=new FrameLayout(context);
middleMenu = new FrameLayout(context);
rightMenu = new FrameLayout(context);
middleMask = new FrameLayout(context);
leftMenu.setBackgroundColor(Color.RED); // 设置背景颜色
middleMenu.setBackgroundColor(Color.GREEN);
rightMenu.setBackgroundColor(Color.RED);
middleMask.setBackgroundColor(0x88000000);
leftMenu.setId(LEFT_ID);
middleMenu.setId(MIDDLE_ID);
rightMenu.setId(RIGHT_ID);
addView(leftMenu); // 添加至View
addView(middleMenu);
addView(rightMenu);
addView(middleMask);
middleMask.setAlpha(0); // 设置middleMask的透明度
}
然后就是它们的一些布局呀,balabala……
@Override