今天还是在原来的UI上面做手脚, 点击侧滑出来的布局其中的按钮,弹出一个全屏半透明界面,然后触摸消失, 开始浮现在自己脑海中的集中思路 不说实现
1. popupwindow();
2.事先将一张view铺在上面隐藏好,等有点击事件的时候再将其显示出来;
3.弹出个全屏的dialog;点击、触摸的时候消失;
我先测试的第一种情况, popupwindow() 点击某个按钮,在此按钮附近弹出一个浮窗,不过它是有个父view作为参照,在底层视图的某个位置, 测试了几种情况, 没成功 只能换种情况来试试;
换2来测, 将当前的布局嵌入到FrameLayout中, 将要显示的pic放在framlayout的最上层隐藏起来; 看起来没什么大问题, 不过当实测的时候的确不可以;提示了一些布局方面的事情, 我想应该是不能这么搞;
换3来测, dialog大家都不陌生, 只是要让它全屏, 怎么设定它的布局宽高都不好使, 那么只能自己来控制布局的样式;
好, 话不多说了, 先上代码实现再说其他··············
/**
* 点击侧滑按钮 弹出介绍页dialog.
* 点击dialog, 消失。
*/
public void showKPIIndicateDialog() {
helpLL.setVisibility(View.GONE);
showDownAnimationInX(allLL, 100, 0);//横向动画
rightIsFinished = false;
leftIsFinished = false;
final Dialog dialog = new Dialog(this, R.style.dialog_fullscreen);
LayoutInflater inflater = LayoutInflater.from(this);
view = (View)inflater.inflate(R.layout.fullscreen_dialog_land_layout, null);
dialog.setContentView(view);
dialog.getWindow().setWindowAnimations(R.style.dialog_anim);
dialog.show();
image = (ImageView) view.findViewById(R.id.land_kpi_indicate_iamge);
image.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(dialog.isShowing()) {
dialog.dismiss();
}
}
});
}
自定义个dialog 显示样式自己来处理;
直接对dialog进行动画设定是不科学的, 必须dialog.getWindow().setWindowAnimation();
要实现触摸、点击隐藏dialog,必然要对dialog布局进行提取,监听,处理; 在dialog.dismiss()之前最好判断下是否处在显示状态,避免不必要的问题
开始准备要用到的代码素材:
自定义样式-- res/values/styles.xml下面新建<style></style> 标签, 进行一些标签的设置, 如下
<!-- dialog的全屏显示样式 -->
<style name="dialog_fullscreen">
<item name="android:windowFullscreen">true</item>
<item name="android:windowNoTitle">true</item>
</style>
<!-- dialog的进出动画样式 -->
<style name="dialog_anim">
<item name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
<item name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
</style>
准备进出动画 ---res/新建anim文件夹/新建两个.xml文件来设置动画过渡效果
进---dialog_enter_anim.xml;
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="0%"
android:pivotY="100%"
android:fillAfter="false"
android:duration="400"/>
</set>
出---dialog_exit_anim.xml;<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:pivotX="0%"
android:pivotY="100%"
android:fillAfter="false"
android:duration="400"/>
</set>
嗯 基本上这几点就能组装实现要求, 先写这么多,所有东西都需要代码检验才能见分晓, 说是没用的。
我一般出问题之后不会立刻抱着问题去问别人, 以前是的; 基本上是先定位哪里出问题了, 分析看看大致什么原因,实在有些难度上Google下, 其实想想,你查书跟查Google有区别么? 不要有种上网找资料就是菜B的心理,虽然我以前是这样的思想; 都是互相学习的个过程, 学到了, 成为自己的了 那才是本事,过程跟途径不重要;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~ 唯有压力才能突破, 才能距破茧成蝶之日更进一步、~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~