android如何得到控件大小

项目中一个自定义View,继承自RelativeLayout,其中需要得到它的大小,在onCreate()方法中调用getWidth()与getHeight()得到的值均为0,网上有朋友说在onClick()方法中可以获取,没有试过,若可以,调用performClick()就可以自动完成点击得到尺寸。


其实有另一个监听器更合适来做这个的,即OnGlobalLayoutListener,不过OnGlobalLayoutListener是ViewTreeObserver的监听器,ViewTreeObserver是用来帮助我们监听某些View的某些变化的。下面的代码是在自定义的View里得到ViewTreeObserver对象,注册监听器和一般的一样。

ViewTreeObserver vto = this.getViewTreeObserver();
        vto.addOnGlobalLayoutListener(this);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中按比例展示视频,可通过设置`VideoView`的布局参数来实现。以下是一种实现方式: 1. 首先,在你的布局文件中添加一个`VideoView`控件,并设置其宽高为match_parent,即填充父容器的大小。 ```xml <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 接下来,在你的Activity或Fragment中,找到对应的`VideoView`控件,并设置视频的路径或URI。 ```java VideoView videoView = findViewById(R.id.videoView); // 设置视频路径(本地文件路径) videoView.setVideoPath("/sdcard/video.mp4"); // 或者使用URI // videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video)); ``` 3. 接下来,计算视频的宽高比例。 ```java int videoWidth = videoView.getMediaController().getMeasuredWidth(); int videoHeight = videoView.getMediaController().getMeasuredHeight(); float aspectRatio = (float) videoWidth / videoHeight; ``` 4. 然后,根据计算得到的宽高比例,调整`VideoView`的布局参数。 ```java LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) videoView.getLayoutParams(); layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; layoutParams.height = (int) (videoWidth / aspectRatio); videoView.setLayoutParams(layoutParams); ``` 通过以上步骤,你可以按照视频的宽高比例来展示视频。在这个例子中,视频将会按照1:1的比例来展示。你可以根据需要修改比例的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值