android如何判断控件的大小大于屏幕的宽度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android如何判断控件的大小大于屏幕的宽度相关的知识,希望对你有一定的参考价值。

可以通过给控件注册监听视图树的观察者来获取控件的大小

代码如下

public class MainActivity extends Activity 

private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) 
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.text);
tv.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() 

@Override
public void onGlobalLayout() 
        //在这里获取到宽高
int width = tv.getMeasuredWidth();
int height = tv.getMeasuredHeight();


);


ViewTreeObserver 是一个注册监听视图树的观察者(observer),在视图树种全局事件改变时得到通知。

而OnGlobalLayoutListener是当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时的回调接口


获取屏幕宽高代码如下

DisplayMetrics dm = getResources().getDisplayMetrics();
int screenWidth = dm.widthPixels;//屏幕宽度
int screenHeight = dm.heightPixels;//屏幕高度


两者都获取到了,就可以进行判断了

参考技术A 可以用
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

metrics.widthPixels和metrics.heightPixels就是屏幕大小了本回答被提问者采纳

Android开发, 布局,控件占用剩余所有宽度。

有一个布局,左边和右边的控件宽度大小指定,如何设置中间的控件大小为全部剩余宽度?

那就只能在java里指定了,屏幕的宽一左边是X的坐标y就看你那两个控件的位置,然后大小就是
屏幕的宽-左边控件-右边控件 就可以了
参考技术A 用TableLayout布局中放入TableRow即可
然后中间的控件fill_parent
或者使用RelativeLayout,
然后中间的控件fill_parent

以上是关于android如何判断控件的大小大于屏幕的宽度的主要内容,如果未能解决你的问题,请参考以下文章

android的ProgressBar问题:如何设置ProgressBar的宽度?

如果大小大于 800 像素,则设置最大内容宽度

用js判断屏幕的宽度,改变html字体大小用rem布局

android ImageView图片缩放至屏幕大小

怎么让android中的GridView的item有不同的宽度

Android 屏幕适配