漫吧漫画阅读界面的搭建(一)基础布局搭建(上)

想看第二篇的童鞋, 漫吧漫画阅读界面的搭建(一)基础布局搭建(下)

想看直接完整代码的童鞋,漫吧漫画阅读界面的搭建(一)基础布局搭建(完全代码)

先上界面的效果图:(图片质量有点差,这是因为质量好老是会超过大小限制,请谅解)


一、首先我们来实现基本的图片显示部分

这里想法是这样的,实现方式多样

1.可以通过ViewPager控件然后加载Fragment来实现。

2.可以通过RecyclerView或者ListView的item实现。

3.可以通过轮播控件来实现。当然还有其他的方式。

这里我使用的是第二种,通过RecyclerView的item来实现。

下面上代码:

item布局:




然后看看漫画查看界面的布局:




这样就把图片显示的布局搭建好了,recyclerView的使用应该很简单美着里就不再赘述了。

二、实现上下菜单

这里我们通过TranslateAnimation配合布局的显示消失来实现消失和显示的动画

具体的这篇博客有描述控件显示与隐藏动画

那么第一步还是我们的界面,这里是接着前面的漫画主布局做的

顶端布局:


底部布局(同样是与漫画主布局在一个文件内):

    



看了上面的布局代码,是不是觉得布局内容太多了?我们一可以使用引入布局来实现,这个看个人习惯,当然我建议通过引入布局的方式来做,这样代码看起来不会那么辛苦,修改起来也更简单。

重点来了,我们需要动态的控制上下菜单布局的显示与隐藏。这里我们还需要一个接受用户点击的控件,来接收用户点击然后控制显示与影藏,这里可以看你喜好以及实际需求添加控件到合适位置。


我添加的布局是(注意这里应该添加到RecyclerView的布局以下,因为RecyclerView是全屏的,而我们的主容器又是相对布局,添加到之前的话会导致点击事件被RecyclerView拦截):


那么剩下的就是使用java代码进行相关控制了

直接上代码(很简单,主要是动画代码,前面我已经给出了相关博客,有问题可以去看看):

         private LinearLayout toplayout;private LinearLayout bottomlayout;/*** 动画时间*/private static final int UI_ANIMATION_DELAY = 200;/*** 显示或者隐藏状态*/private boolean mVisible;	/*** 展示上下栏*/void showPanel(){//Log.i(TAG,"hidePanel: 显示");TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0.0f,Animation.RELATIVE_TO_SELF,0.0f,Animation.RELATIVE_TO_SELF,1.0f,Animation.RELATIVE_TO_SELF,0.0f);TranslateAnimation translateAnimation1 = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,-1.0f, Animation.RELATIVE_TO_SELF, 0.0f);translateAnimation.setDuration(UI_ANIMATION_DELAY);translateAnimation1.setDuration(UI_ANIMATION_DELAY);toplayout.setAnimation(translateAnimation1);bottomlayout.setAnimation(translateAnimation);toplayout.setVisibility(View.VISIBLE);//这里通过改变可见性来播放动画bottomlayout.setVisibility(View.VISIBLE);//这里通过改变可见性来播放动画//底部状态栏消失small_status.setVisibility(View.GONE);//隐藏上下操作板,防止与上下菜单冲突,注意只能是隐藏,不能GONE,否者会导致中间控制板占据所有屏幕的问题nextToogle.setVisibility(View.INVISIBLE);preToogle.setVisibility(View.INVISIBLE);}/*** 隐藏上下栏*/void hidePanel(){//Log.i(TAG,"hidePanel: 隐藏");TranslateAnimation translateAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0.0f,Animation.RELATIVE_TO_SELF,0.0f,Animation.RELATIVE_TO_SELF,0.0f,Animation.RELATIVE_TO_SELF,-1.0f);TranslateAnimation translateAnimation1 = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF,0.0f, Animation.RELATIVE_TO_SELF, 1.0f);translateAnimation.setDuration(UI_ANIMATION_DELAY);translateAnimation1.setDuration(UI_ANIMATION_DELAY);toplayout.setAnimation(translateAnimation);bottomlayout.setAnimation(translateAnimation1);toplayout.setVisibility(View.INVISIBLE);//这里通过改变可见性来播放动画bottomlayout.setVisibility(View.INVISIBLE);//这里通过改变可见性来播放动画//底部状态栏显示small_status.setVisibility(View.VISIBLE);//显示上下操作板,防止与上下菜单冲突nextToogle.setVisibility(View.VISIBLE);preToogle.setVisibility(View.VISIBLE);}/*** 触发器用来控制显示与隐藏*/void toogle(){if(mVisible){hidePanel();mVisible = false;}else{showPanel();mVisible = true;}}

接下来就是设定按下监听,然后调用toogle()方法就可以实现上下菜单栏的显示隐藏了。

这篇先到这里,有兴趣的可以继续漫吧漫画阅读界面的搭建(一)基础布局搭建(下)





本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部