android viewflipper 解决屏幕翻转后图片显示为点击进入图片
2015-03-26 16:32
281 查看
相信好多好多同学都会遇到我这个问题,先从原理上来讲吧,屏幕翻转时系统会自动执行当前Activity的OnCreate方法,就相当于重新刷新了一下这个Activity,而一般点击进入时我们都会传入一个图片的ID,作为第一张显示的图片,而此ID的获得一般都放在OnCreate方法中,那么屏幕翻转后当然只能显示第几进入的图片了(在构造函数中获取ID也许是个不错的方法,没试过,写着写着突然想到的,不知道行不行的通)。
面对此问题有个很简单的方法,在AndroidManifest.xml文件中设置对应Activity的属性android:configChanges="orientation|keyboardHidden",这样当屏幕翻转的时候就不会再次调用OnCreate方法,只会调用onConfigurationChanged方法,但是一般图片浏览如果不重新获取屏幕宽和高的话,图片显示肯定不会在屏幕正中的,所以我们将会面临一个问题,还必须在onConfigurationChanged方法中重新初始化一下,调整好图片位置。但是,如此一来代码量就真的太大了,而且还有重复量(比如重新获取屏幕的宽和高)。
不过不要担心,肯定有解决办法,现在问题主要是屏幕翻转后ID的获取出了问题,我们只要保证获取的ID为当前浏览图片的ID不就OK了,我的办法是在FlipperActivity中设置一个静态变量public static int positionstatic,用它来记录当前位置,在LoadBitmap是positionstatic = position,实时记录当前图片浏览位置,当然这还不够,还需要在FlipperActivity之前的Activity(一般都是gridview)中设置一个判断变量public
static boolean fixedposition = false;在每次点击图片进入Flipper时需要设置fixedposition 为false,然后在Flipper的OnCreate方法中判断下
最后在LoadBitmap中设置
大功告成,每次翻转后都可以是当前图片了,各位要给好评呐。
面对此问题有个很简单的方法,在AndroidManifest.xml文件中设置对应Activity的属性android:configChanges="orientation|keyboardHidden",这样当屏幕翻转的时候就不会再次调用OnCreate方法,只会调用onConfigurationChanged方法,但是一般图片浏览如果不重新获取屏幕宽和高的话,图片显示肯定不会在屏幕正中的,所以我们将会面临一个问题,还必须在onConfigurationChanged方法中重新初始化一下,调整好图片位置。但是,如此一来代码量就真的太大了,而且还有重复量(比如重新获取屏幕的宽和高)。
不过不要担心,肯定有解决办法,现在问题主要是屏幕翻转后ID的获取出了问题,我们只要保证获取的ID为当前浏览图片的ID不就OK了,我的办法是在FlipperActivity中设置一个静态变量public static int positionstatic,用它来记录当前位置,在LoadBitmap是positionstatic = position,实时记录当前图片浏览位置,当然这还不够,还需要在FlipperActivity之前的Activity(一般都是gridview)中设置一个判断变量public
static boolean fixedposition = false;在每次点击图片进入Flipper时需要设置fixedposition 为false,然后在Flipper的OnCreate方法中判断下
[代码]java代码:
if(CloudGridView.fixedposition == true){ System.out.println("已经加载过了,只需要加载positionstatic"); position = positionstatic; }
最后在LoadBitmap中设置
[代码]java代码:
positionstatic = position;//设置静态变量供线程判别用户是否浏览当前图片调用 CloudGridView.fixedposition = true;//设置状态为已点击进入
大功告成,每次翻转后都可以是当前图片了,各位要给好评呐。
相关文章推荐
- android Gallery点击 跳到ViewFlipper全屏显示图片
- Android自定义控件:imageview重写onMeasure方法实现图片按指定比例显示,拉伸永不变形,解决屏幕适配问题
- Android中 在显示ImageView时图片上面和下面都出现一段空白区间的解决办法
- Android--在显示ImageView时图片上面和下面都出现一段空白区间的解决办法
- 解决Android开发中ViewPager动态设置PagerAdapter时第二次进入Fragment内容不显示的问题
- 暂时解决了Android webview组件中显示SVG自适应屏幕问题
- android 工程,点击图片,在屏幕显示
- Android解决ViewPager页面滑动空白bug和图片点击bug
- android imageview 图片不能正常显示 或不能自适应的解决方法
- Android webView自适应屏幕显示图片
- android ViewPager在拖拽到左边和右边的时候,禁止显示黄色或者蓝色的渐变图片的解决方法
- Android ViewFlipper滑动屏幕切换图片
- Android中 在显示ImageView时图片上面和下面都出现一段空白区间的解决办法
- android ViewPager在拖拽到左边和右边的时候,禁止显示黄色或者蓝色的渐变图片的解决方法
- Android webview Mixed Content无法显示图片解决
- android ImageView 视屏幕情况 使图片在限定范围内进行缩放显示
- Android ViewFlipper滑动屏幕切换图片
- 【Android】在显示ImageView时图片上面和下面都出现一段空白区间的解决办法
- Android TextView 显示网络图片,点击放大
- Android 中 WebView 与 js 简单交互实现图文混排效果,解决图片自适应屏幕与查看大图问题