Android通过代码获取View】的更多相关文章

View view = LayoutInflater.from(mContext).inflate(R.layout.song_item_adapter, null); LayoutInflater inflater = (LayoutInflater)context.getSystemService       Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.hello,null);  …
对于UI方面很多时候需要获取它的很多信息,具体情况见view的文档 View文档 http://developer.android.com/training/index.html 常用方法:获取view的宽高getWidth()getHeight() 获取当前view相对于[父元素]坐标系的原点.此点对于当前view而言,是它的左上角点在父元素坐标系中的坐标getX()getY() 获取当前view相对于[父元素]坐标系的几个值getLeft()getTop()getRight()getBott…
获取view在屏幕上的绝对坐标在调试时候非常有用. 看如下代码 public class AbsolutePosActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new DrawLineView(this)); } } public class DrawLineView…
View宽高测量方法: 测量方法有三种,如下: 1)(直接在onCreate()执行) int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); imageView.measure(w, h); int height =imageView.getMeasured…
因为app中用到华为推送,但是华为推送在不同版本上是存在不同问题的,需要单独来处理. 那么最基本的问题是要获取EMUI系统的版本号. 上网翻了很多博客帖子,基本上是在获取root权限下去读取/system/build.prop文件的内容,获取Emui版本号.但是,不是所有用户的手机都root了. public static double getEMUI2() { Properties properties = new Properties(); try { properties.load(new…
view.post(runnable) 通过post可以将一个runnable投递到消息队列的尾部,然后等待UI线程Looper调用此runnable的时候,view也已经初始化好了. view.post(new Runnable() { @Override public void run() { L.i("post(Runnable) : view.getWidth():" + view.getWidth() + " view.getHeight():" + vi…
最近在看Android底层代码的view绘制原理的时候讲到一个很有意思的事情,也是我几年前刚开始学习Android开发的时候比较纳闷的一个问题,如果你不理解Android的底层绘制,请看我之前一片文章对View绘制的简单分析点击打开链接. 那么在onCreate()获取view的width和height会得到0呢,原因是Android的oncreate和onMesure是不同步的,我们在onCreate里面获取的width和height,控件还没有绘制完成呢. 针对上面的问题,网上提供了4种解决…
在Android里,获取View宽高的时机是个老生常谈的话题了.众所周知,在Oncreate里直接调用View.getWidth或者View.getMeasuredWidth返回都是0.所以获取宽高时机很重要,对于这个问题的解决方法概括起来有四种之多,具体可以看看任玉刚老师的<Android开发艺术探索>中的View章节或者网上也有非常丰富的资料. 而本文主要讨论的是其中的一个解决方法. View.post()获取View宽高 这个方法相信大家都很熟悉了,就是这样: @Override pro…
1. 应用内的代码截屏(获取View的快照) Android的View类中提供了获取控件绘制缓存的方法,这种截屏的方式仅限于应用内自己的Activity界面,不需要任何权限,严格来说该方法不属于截屏,只是获取某个View控件每次绘制后的快照,代码如下: 截取某一个控件绘制后的快照: // 获取需要截取快照的控件 View view = findViewById(R.id.my_view); // 设置控件允许绘制缓存 view.setDrawingCacheEnabled(true); // 获…
在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0 ? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_view); myview = ViewUtils.find(this, R.id.myview); getViewSize("onCr…