SurfaceView左右滑动切换黑屏问题解决方式
2024-08-31 14:09:57
在项目中使用的是高德地图,放置MapView的Fragment和其它Fragment放置一个ViewPager中切换;当从MapView的Fragment切换到其它Fragment或者从其它Fragment切换到MapView就会产生闪黑边。网上有说什么设置白色背景或者设置Activity style透明。经尝试设置Activity style透明是能够解决闪黑边问题的,可是Activity透明后会看到Launcher桌面。所以这样的方式也是不可行的。
我通过改动ViewPager的过渡方式完美解决闪黑边问题。你们也能够定义其它形式的过渡方式,仅仅要给自己的ViewPager设置例如以下过渡方式就可以。
ViewPager中MapView遇到的问题已经攻克了,如今又遇到SlideMenu和MapView切换时闪黑边,正在寻找解决方法, 可行的话会在下一篇博客写出来(我自己尝试把SlideMenu换成了DrawerMenu还是有黑白仅仅是不像SlideMenu那么明显,所以也是不行)。
viewpager.setPageTransformer(true, new DepthPageTransformer());
public class DepthPageTransformer implements PageTransformer {
private static final float MIN_SCALE = 0.75f; public void transformPage(View view, float position) {
int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(0); } else if (position <= 0) { // [-1,0]
// Use the default slide transition when moving to the left page
view.setAlpha(1);
view.setTranslationX(0);
view.setScaleX(1);
view.setScaleY(1); } else if (position <= 1) { // (0,1]
// Fade the page out.
view.setAlpha(1 - position); // Counteract the default slide transition
view.setTranslationX(pageWidth * -position); // Scale the page down (between MIN_SCALE and 1)
float scaleFactor = MIN_SCALE
+ (1 - MIN_SCALE) * (1 - Math.abs(position));
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor); } else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(0);
}
}
}
还发现一个更简单的方法是给MapView加入一个负数的margin比方左边会有黑边就设置marginLeft="-80dp",marginRight="-80dp"左右都设置是要保证地图内容居中显示,这样会让MapView没入View吧边缘,黑边就不会被看到了
最新文章
- The superclass ";javax.servlet.http.HttpServlet"; was not found on the Java 	 Build Path解决方案
- PCWIFI--无线网络共享软件
- Android图片圆角效果
- bestcoder Round#52 1001(最短路+状压dp)
- 第一版STM32PCB的问题
- 网络编程之Socket详解
- 关于overflow: hidden;的一个诡异问题
- unbind() 移除事件内处理方法
- 2017 3 11 分治FFT
- imx6 android5.1 编译
- 【源码学习之spark core 1.6.1 standalone模式下的作业提交】
- Backing up the tail
- java IO操作:FileInputStream,FileOutputStream,FileReader,FileWriter实例
- 20165212 预备作业3 Linux安装及学习
- Django_admin源码流程
- 定义serialVersionUID的作用与意义整理
- pg定时任务创建、查询与删除
- Django【进阶】权限管理
- 快速搭建YUM源和yum使用
- Android中使用File文件进行数据存储