zoukankan      html  css  js  c++  java
  • 白龙软件商店面试问题整理

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

    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线程安全。

  • 相关阅读:
    青龙峡蹦极
    DNN Web Platform 官方汉化版本 5.5
    “\images” 和 “~\images'”的区别
    我们家的小公主
    asp实用类库DataList
    计算上月、下月、上周、下周..日期范围
    网页按钮大本营
    用XP做服务器突破10人限制
    变动翻屏展示图片效果
    写给所有的IT民工们
  • 原文地址:https://www.cnblogs.com/ganwei/p/4870472.html
Copyright © 2011-2022 走看看