原生控件
文章平均质量分 59
淡淡的宁静
非宁静无以致远,非淡泊无以明志
展开
-
TextView的getTextSize和setTextSize
getTextSize的返回值是px(pixel)setTextSize的参数时锁屏(scaled in pixel)原创 2016-12-12 20:12:06 · 653 阅读 · 0 评论 -
PopupWindow的使用
1.记得要设置背景,否则将无法点击外面消失2.PopupWindow是没有使用PhoneWindow的,直接WindowManager.addView(),窗口类型为子窗口。3.PopupWindow有默认的Transition动画,也可以通过setAnimation方法闯入style id设置窗口动画4.PopupWindow是通过获取anchorView在窗口坐标系的位置,结合of...原创 2019-03-07 21:09:29 · 231 阅读 · 0 评论 -
AbsListView小结
1.滚动时,无论时FlingMode还是ScrollMode,最终都是调用trackMotionScroll(),其中包括了View回收的计算及执行,trackMotionScroll()使用了offsetChildrenTopAndBottom()对children做坐标变换。2.ScrollMode时,主要调用scrollIfNeeded(int x, int y, MotionEvent...原创 2019-03-10 23:05:51 · 927 阅读 · 0 评论 -
Android ListView工作原理完全解析,带你从源码的角度彻底理解
在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,L...转载 2019-03-10 22:49:53 · 152 阅读 · 0 评论 -
OverScroller、Scroll到edge时的阻尼效果,overScrollBy和scrollTo,AbsListView和ScrollView的滚动实现区别
OverScroller和Scroller类似,都只是根据duration、已过去的时间,start position,final position,根据某种interpolator计算某个时刻的scrollX和scrollY(这里说的scrollX/Y和View的成员mScrollX/Y无关)。AbsListView和ScrollView添加阻尼效果使用的Scroller都是OverScro...原创 2019-03-10 21:29:34 · 1119 阅读 · 0 评论 -
Android中ListView的几种常见的优化方法
转自:https://www.cnblogs.com/peterpan-/p/5956424.htmlAndroid中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法:首先我们给出一个没有任何优化的Listview的Adapter类,我们这里都继承自BaseAdapter,这里我们使用一个包含100个字符串的Lis...转载 2019-03-10 19:00:20 · 158 阅读 · 0 评论 -
ListView的OnItemClickListener是如何被调用的
1.首先是item的view没有处理这个down事件,只好ListView来处理,接着的up事件必然也会由ListView来处理。2.如果是一个tap动作,即点击,那么处理up事件时就会去调用OnItemClickListener,在AdapterView#performItemClick(View view, int position, long id)中调用。那么怎么根据event.g...原创 2019-03-09 17:21:45 · 2878 阅读 · 0 评论 -
AlphaAnimation的使用---控件显示(隐藏)时的属性动画
这里直接贴代码,mListViewListener用来在滑动的时候发消息给handler显示控件。doOnScrollStateChange()用于在listView停止滑动时,发消息给Handler隐藏控件。OnTouchListener mListViewListener = new View.OnTouchListener() {原创 2017-02-20 21:49:30 · 2259 阅读 · 0 评论 -
TextView滚动显示内容
android:id="@+id/long_screen_shot_mytextview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center"原创 2017-01-14 15:48:59 · 638 阅读 · 0 评论 -
ListActivity和一般Activity的区别
在ListView的ContentView的布局文件中,一般会有一个ListView,它的id是android:id="@android:id/list";使用getListView()获取到这个ListView。然后设置适配器使用setListAdapter(ListAdapter);原创 2016-12-22 15:26:38 · 1273 阅读 · 0 评论 -
SearView的使用及对其私有成员mSearchSrcTextView的反射及使用
SearchView继承了LinearLayout,还持有搜索布局中的重要成员,可以通过发射可以得到。因为他没有太多接口提供,比如,无法设置限制字符串长度。而其中一个成员是SearchAutoComplete mSearchSrcTextView;(extends AutoCompleteTextView(extends EditText)),所以SearchAutoComplete间接继承了原创 2016-12-15 21:34:42 · 493 阅读 · 0 评论 -
AlertDialog的使用及全屏显示
//Gionee modify for begin static AlertDialog mRefreshDialog; private AlertDialog showRefreshDialog(){ final FrameLayout frameLayout = (FrameLayout) getLayoutInflater().inflate原创 2016-12-15 21:07:30 · 1163 阅读 · 0 评论 -
截屏应注意的细节和尝试(导出的图片一片黑色)
1.在手机的图片查看器是没有颜色背景的(没有黑色就显示为黑色)。而画笔的颜色是默认黑色的,所以需要一个非黑色的背景才能够看到黑色的字体。下面是截屏的关键代码:是从顶层View绘制,所以contentView为根的子控件树不加背景也是可以看到黑色字体的,因为顶层View应该是绘制了白色背景的static Bitmap getListViewScreenShot(Activity a){原创 2016-11-28 16:04:29 · 4651 阅读 · 0 评论 -
ArrayAdapter作为ListView适配器,ListView作为LinearLayout子控件时,ListView的item不可点击
知道处于何种原因,如题所述。解决方法:1. 将RelativeLayout作为ListView的父控件。2.用baseAdapter作为ListView的适配器。其中使用了各种使ListView的Item获得焦点的方法都无济于事,包括如下:1.listView.setItemsCanFocus(true); //设置item项的子控件能够获得焦点(默认为false,即默认item项的子原创 2016-11-28 16:27:55 · 786 阅读 · 0 评论 -
控件树的触摸事件派发小结
当一个触摸事件产生后,它的传递过程遵循如下顺序:Activity→Window→View。所以Activity的rootView收到一个触摸事件后,就会按照控件树的触摸事件派发流程,而事件的派发流程由ViewGroup(View)的dispatchTouchEvent(MotionEvent ev),其实dispatchTouchEvent方法在执行事件派发前,还控制确定派发目标的逻辑,在这里原创 2016-11-22 21:34:04 · 358 阅读 · 0 评论 -
解决ListView与ScrollView的滑动冲突(非自定义View方案)
在介绍解决冲突关键点前,先介绍AbsListView.OnScrollListener,该类用于监听AbsListView类及其子类的滑动。(注意:点击Item并不会引起任何该监听器的回调,因为没有滑动状态改变或滑动)先介绍AbsListView.OnScrollListener#onScrollStateChanged(AbsListView view, int scrollStat原创 2016-11-22 19:40:46 · 1051 阅读 · 0 评论 -
ListView在ScrollView中只显示一行浅析
因为在代码中调试的时候,跟源码的行不匹配,乱了,所以没从源码找到什么原因。但是从以下测试代码可以知道,是ScrollView在给ListView传MeasureSpec的时候给SpecSize是有问题的,即ScrollView给的heightSpecSize是ListView一行的高度。我继承了ListView,重写了他的onMeasure方法,目的是改掉ScrollView传入的MeasureS原创 2016-11-22 14:06:42 · 656 阅读 · 0 评论 -
ViewPager和ViewFlipper的基本原理
ViewPager extends ViewGroupViewPager实现了onMeasure,onLayout,draw(),onDraw(),draw()中主要是绘制EdgeEffect(阻尼效果),onDraw中主要是绘制marginDrawable。使用VelocityTracker,Scroller及scrollTo()方法实现滑动和flingViewFlipper ex...原创 2019-03-11 19:19:17 · 686 阅读 · 0 评论