Xiao bailong

白龙软件商店面试问题整理

白龙软件商店面试问题整理(三)

1.如何设置自动轮播效果。

实现原理都是通过Handler发送延时消息。队列,在Thread当中实现反复发送。

1.getHandler().postDelayed(runable, 1000);

或者
handler.sendMessageDelayed(msg, delayMillis);发送空的延时消息Handler队列。

2.卡片布局的实现思路。

实现相对简单。就是该是什么布局就就制作成什么布局。图片可以使用BitmapUtils来进行网络加载

由于的图片的大小不太可控。展示效果不仅人意。我们通过RatioLayout按照布局来实现确定卡片内部的布局实现思路。

3.下拉动画的实现原理

ValueAnimator设置ValueAnimator.ofInt(endHeight, startHeight);开始高度和结束高度。

ValueAnimator添加addUpdateListener(new AnimatorUpdateListener()。改变简体

getLayoutParams()获取布局参数,改变高度,设置设置setLayoutParams(mParams)实现改变参数。

子线程查找父布局ScrollView,设置scrollView.fullScroll(ScrollView.FOCUS_DOWN);。展现到底操作。

4.自己写布局实现思路

new RelativeLayout(UIUtils.getContext());一个布局

setLayoutParams(params)设置布局参数。
注意:主控件高度heighe不能使用LayoutParams.MATCH_PARENT,必须写死,有可能是在加载布局的时候没有撑起来,所以子控件就 没法加载出来。

View.addView(newViwe),添加子控件,并设置在父控件当中的LayoutParams中的位置。

展示

5.多布局推荐页面设计

重写getViewTypeCount()

position判断是否返回不同的布局。

6.ListView显示加载更多的原理

重写getViewTypeCount()方法,返回布局数为2

重写getItemViewType()根据位置返回不同的类型,必须从0开始,

根据getView()判断加载布局类型。一般是position的位置来确定是否要加载更多布局。

开启子线程加载需要的数据,获取数据,根据情况setVisibility(View.GONE);

填充list.addAll(morelist)`` notifyDataSetChanged();改变数量。

7.Adapter的各个方法之间的调用发发

系统会不断调用getViewTypeCount()系统会不断调用该方法,。

getItemViewType()系统也会不断调用该方法。来判断当前显示的布局。当这里返回的布局不是普通布局的时候。getView当中的convertView就会为null

8.软件下载实现原理

通过观察者模式。各自的对象的观察者,

如果下载状态发生改变。通知观察者来更状态

通过whrite()的写入状态动态实现进度条的更新。

9.HashMap线程安全问题

HashMap其实是线程不安全的。
ConcurrentHashMap线程安全。

posted @ 2015-10-11 23:51  小白龙on  阅读(160)  评论(0编辑  收藏  举报

QQ:846650266,电话:15117424475

© 白龙工作室 |隐私条款 |服务条款 |盘ICP备10000000号-1