安卓开发 想要获取某个View的高度(我是在做滚动浮层的时候用到的)

1.activity中有个onWindowFocusChanged()方法,可以获取控件的大小,别的地方可能会调用过早导致获取不到实际的大小

 @Override
    public void onWindowFocusChanged(boolean hasFocus) {        super.onWindowFocusChanged(hasFocus);       if (hasFocus){//获取焦点            heightmiddle = oldconent_floatlayout.getTop();            MyLog.e(TAG, "控件初始高度:" + heightmiddle);        }    }

2.fragment 没有onWindowFocusChanged()方法,不过可以调用视图树ViewTreeObserver的方法来实现:

ViewTreeObserver observer= oldconent2_floatlayout.getViewTreeObserver();
/**对视图变化进行监听的观察者    代替activity的onWindowFocusChanged()方法*/
observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {    @Override     public boolean onPreDraw() {
        if (!isMeasured){              isMeasured=true;            heightmiddle = oldconent_floatlayout.getTop();            MyLog.e(TAG, "Fragment控件初始高度:" + heightmiddle);        }        return true;    }});


时间: 2024-11-05 12:10:56

安卓开发 想要获取某个View的高度(我是在做滚动浮层的时候用到的)的相关文章

android安卓onCreate方法中获取控件宽度高度

ViewTreeObserver vto = imageView.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { public void onGlobalLayout() { imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this); int height=imageView.getHeight();

安卓开发:获取手机通讯录信息

写一个安卓软件,实现获取通讯录里的人名和对应的电话号码,并且通过ListView显示出来. 因为要获取手机本地的信息,所以第一个步骤就是先给定权限咯 <uses-permission android:name="android.permission.READ_CONTACTS"/> 因为获取到信息后是通过ListView显示出来,所以把布局写好,总共两个布局,一个布局放ListView,一个布局放ListView的子布局,这里比较基础,就不放代码了 接着就是通过java代码

[安卓开发] 自定义View之一: 组合View

一.自定义View的分类 1.组合View 2.继承重写View 3.全写View 二.简介 组合View,就是组合一些View来形成一个新的View.例如QQ的头部栏 三.了解 ** android:layout_width="match_parent" 上面这个前缀android是根据 根控件的 xmlns:**android**="http://schemas.android.com/apk/res/android" 这个来命名的,这是系统的.我们要自定义Vi

安卓开发入门教程全-PopupWindow用法大全

都是一群技术宅,先给大家说一个严酷的现实吧,现在是6月份,多少人顶着大太阳在找工作,现在我们既然有不错的工作或者想通过安卓学好的,我都希望每一个人去实践,就像Android开发入门QQ群:175229978很多人一样,肯去敲代码,不嫌弃麻烦. 首先给大家介绍安卓PopupWindow,不要嫌弃我讲解的有些详细. Android的对话框有两种:PopupWindow和AlertDialog.它们的不同点在于:AlertDialog的位置固定,而PopupWindow的位置可以随意AlertDial

安卓开发笔记——关于照片墙的实现(完美缓存策略LruCache+DiskLruCache)

这几天一直研究在安卓开发中图片应该如何处理,在网上翻了好多资料,这里做点小总结,如果朋友们有更好的解决方案,可以留言一起交流下. 内存缓存技术 在我们开发程序中要在界面上加载一张图片是件非常容易的事情,但如果是加载一堆图片呢?比如ListView,GridView这类的控件,随着屏幕滑动,图片加载也会越来越多,应用程序所可以使用的内存毕竟是有限的,如果一味的去加载图片,很容易导致OOM(Out Of Memory)内存溢出,导致程序崩溃. 这里我们一般的做法是将显示在屏幕之外的图片进行内存回收,

安卓开发笔记——自定义广告轮播Banner(无限循环实现)

关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户"友好性",下面来看几个示例图:     再来看下我仿写的效果: 关于广告轮播Banner这个东西,GitHub上面应该有现成的开源组件,不过我没去找过,觉得实现起来不会太难,就自己去仿写了,下面我说下实现的思路: 1.首先看到这个可以滑动切换图片的界面,我们很自然就会想到ViewPager

安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)

关于底部菜单是什么,我想没必要介绍了,在市场上的APP里太常见了,这里提供两种方式来实现. 记得之前写过几篇关于底部菜单实现的方法,有兴趣的朋友可以看看: 1.<安卓开发复习笔记——TabHost组件(一)(实现底部菜单导航)> 2.<安卓开发复习笔记——TabHost组件(二)(实现底部菜单导航)> 3.<安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)> 今天带来种相对更通俗易懂的写法,不再和过去一样去沿用TabHost了

安卓开发笔记——高仿新浪微博文字处理(实现关键字高亮,自定义表情替换并加入点击事件实现)

先让大家看下效果图,这个是我自己在闲暇时间仿写的新浪微博客户端: 今天来讲讲如何实现上图的效果,这里需要用到SpannableString这个工具类,如果你对这个类并不熟悉,可以先看下我之前写的2篇文章: <安卓开发笔记——个性化TextView(新浪微博)>:http://www.cnblogs.com/lichenwei/p/4411607.html <安卓开发笔记——丰富多彩的TextView>:http://www.cnblogs.com/lichenwei/p/46120

安卓开发笔记——打造万能适配器(Adapter)

为什么要打造万能适配器? 在安卓开发中,用到ListView和GridView的地方实在是太多了,系统默认给我们提供的适配器(ArrayAdapter,SimpleAdapter)经常不能满足我们的需要,因此我们时常要去继承BaseAdapter类去实现一个自定义的适配器来满足我们的场景需要. 如果你是开发一个简单点的APP还好,可能ListView和GridView的数量不会太多,我们只要去写几个BaseAdapter实现类就可以了. 但如果有一天,你需要开发一个APP里面具有几十个ListV