首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android动态设置控件长宽比的几种常见方法

我们在日常的开发中经常需要根据设备的大小来确定控件大小,或者根据控件已知的长宽设置其他控件长宽,这里记录几种常见的方法: 根据设备宽度和长度确定控件大小 例如现在想把某个图片设置成宽度和屏幕宽度一样,长度是宽度的一半...height = width * 0.5; img.setLayoutParams(new LinearLayout.LayoutParams(width , height)); 根据控件已确定宽度设置长度...android:src="@drawable/default_herald"/> 此处由于根布局的padding跟设备的大小其实是已知的,所以ImageView的宽度是设备的宽度减去...padding的大小,但是实际使用中,如这时候想根据ImageView的实际宽度来设置高度,跟上面的例子一样,如果我能获取到width就好办了,但是经常会发现如果我们调用 ImageView img =...img.setLayoutParams(new LinearLayout.LayoutParams(width , height)); } }); 其中post方法的作用是

2.2K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android Q AMA: Everything we learned from Google

    Time-based Dark Mode Android Q新模式:system-wide dark mode.目前,可以在“设置”中或通过“快速设置”中启用暗模式,也可以在启用“省电模式”时自动激活暗模式...Android Q以后所有新设备都需要原生支持HALv3 / camera2。...他解释说: “动态分区并不意味着限制您可以使用自定义ROM执行的操作。它们只是解决固定分区大小问题的解决方案,而且缺乏在OTA上重新分配设备的安全方法。...一些OEM确实在OTA上重新分配他们的设备,但这是a)在Android中没有正式支持,并且b)更改分区表被认为是非常危险的。动态分区旨在通过在物理分区表和OS看到之间引入间接级别来缓解该问题。...该库旨在使开发人员更容易支持Android的Camera2 API,同时保持兼容性,一直到Android Lollipop。

    77110

    Android Camera2 与 Camera API技术探究和RAW数据采集

    拍照的优先级比预览的优先级高,如果需要多次拍照,可以多次调用 capture() 方法。支持的版本和兼容性:Android Camera2 从 Android 5.0(API 级别 21)开始支持。...高速连拍模式:Camera2 支持高速连拍功能,能够以更快的速度连续拍摄多张照片,这对于捕捉快速运动的物体或瞬间的精彩场景非常有帮助。...高效的数据处理:Camera2 采用了更高效的数据处理方式,能够快速地获取和处理图像数据,减少了数据传输和处理的延迟。...架构与兼容性方面: 更灵活的架构:Camera2 的架构更加灵活,将相机系统塑造为一个管道,该管道可按照 1:1 的基准将传入的帧捕获请求转化为帧,并将图像数据的缓冲区输出到设置的目的 Surface...设备特性支持与检测方面: 设备能力检测:通过 CameraCharacteristics 类,Camera2 可以方便地检查设备相机的各种特性和功能,开发者可以根据设备的支持情况来动态地调整相机的设置和功能

    36620

    Android相机应用基本功能实现

    ——实现预览、拍照、保存照片等功能 Android: Camera相机开发详解(下) —— 实现人脸检测功能 Camera2架构概述 Camera2引用了管道的概念将安卓设备和摄像头之间联通起来,系统向摄像头发送...Camera2预览流程图 Camera2拍照流程图 Camera2录像流程图 Camera2中比较重要的类及方法 CameraManager 摄像头管理器,用于打开和关闭系统摄像头 getCameraIdList...: Int)方法的作用是根据屏幕方向和摄像头方向确定是否需要交换宽高 比如我们手机竖屏放置,设置的预览宽高是 720 * 1280 ,我们希望设置的是宽为 720,高为 1280 。..., sizeList: List) 方法获取到最优的宽和高。...在android 5.0,硬件兼容级别为legacy时,Camera2输出的宽高比和Camera Sensor保持一致。

    2K31

    Android开发笔记(一百八十一)使用CameraX拍照

    Android的SDK一开始就自带了相机工具Camera,从Android5.0开始又推出了升级版的camera2,然而不管是初代的Camera还是二代的camera2,编码过程都比较繁琐,对于新手而言有点艰深...CameraX基于camera2开发,它提供一致且易用的API接口,还解决了设备兼容性问题,从而减少了编码工作量。...bindToLifecycle方法,把相机选择器、预览视图、图像捕捉器绑定到相机提供器; 7、调用预览视图对象的setSurfaceProvider方法,设置预览视图的表面提供器; 把上述的初始化步骤串起来...); // 绑定摄像头 // 设置预览视图的表面提供器 mPreview.setSurfaceProvider(mCameraPreview.getSurfaceProvider());...点此查看Android开发笔记的完整目录

    1.8K20

    Android 端相机相关开发经验总结

    CameraView这个项目可以帮助Android开发者快速创建一个可以适配不同Android系统和不同Android设备,并且包含各种基本功能的相机界面,它的使用正如它的说明文档中那样,引入一个自定义的...CameraViewImpl是用来实现相机开启、设置相机参数以及实现各种相机功能的核心类,根据API level的不同分为三个实现子类,Camera1、Camera2和Camera2Api23,其中Camera2...是为Android 5.0(API level 21)及以上系统提供的,Camera2Api23继承自Camera2,是为Android 6.0(API level 23)及以上系统提供的。...这里有个方法可以判断预览状态:Camera.setPreviewCallback是预览帧数据的回调函数,它会在SurfaceView收到相机的预览帧数据时被调用,因此在里面可以设置是否允许对焦和拍照的标志位...相机权限 众所周知,从Android 6.0开始,Android系统引入了动态权限的机制,所以如果你的应用的targetSDK设置在23及以上的话,你需要在运行的时候检查相机权限是否授予了,如果没有授予的话就要申请

    3.9K30

    从今天开始,用对 Android 新老 Camera APIs

    ,只能: 使用setMeteringAreas()方法来设置测光的矩形; 调用getMaxNumMeteringAreas()方法来获得最多可支持的测光区域个数。...()方法设置测光区域为全屏,在华为荣耀9 机器上采用的是中央重点测光(拍摄内容为:黑色背景上放置一块白色横条,当白色横条在屏幕上部或下部时,得到的照片会比纯黑背景上暗,横条置于屏幕中部则为最暗的);在乐视...下面来谈谈个人对 API 版本选择上的一些看法: 如果你只是想用最新的 API 快速实现一些拍照功能、或者想要基本的相机演示 Demo,Camera2 还是非常好用的,其实 Camera2 的所有缺点,...Camera 2 其他注意事项 权限问题:Camera2 的使用权限,5.0 的 Android 设备在配置文件申明即可,6.0 以上的系统需要考虑动态权限问题。...必须正确设置预览的分辨率的尺寸,使其符合相机的输出大小、格式,才能成功预览。 Preview 的尺寸必须低于屏幕最高分辨率,也必须是摄像头支持的分辨率。

    7.9K126

    Camera development experience on Android

    很显然,自己从零开始构建这么一个Camera模块是比较困难的,这里推荐Google提供的一个非官方库cameraview,CameraView这个项目可以帮助Android开发者快速创建一个可以适配不同...CameraViewImpl是用来实现相机开启、设置相机参数以及实现各种相机功能的核心类,根据API level的不同分为三个实现子类,Camera1、Camera2和Camera2Api23,其中Camera2...是为Android 5.0(API level 21)及以上系统提供的,Camera2Api23继承自Camera2,是为Android 6.0(API level 23)及以上系统提供的。...这里有个方法可以判断预览状态:Camera.setPreviewCallback是预览帧数据的回调函数,它会在SurfaceView收到相机的预览帧数据时被调用,因此在里面可以设置是否允许对焦和拍照的标志位...相机权限 众所周知,从Android 6.0开始,Android系统引入了动态权限的机制,所以如果你的应用的targetSDK设置在23及以上的话,你需要在运行的时候检查相机权限是否授予了,如果没有授予的话就要申请

    1.3K30

    Android Camera2 Focus Distance

    网上也查找了不少资料,有时看别人提的问题以及回答,也能给自己带来不少的帮助,希望下面的内容也能帮助到有需要的小伙伴~ 提问1 从android相机api2,我们尝试设置LENS_FOCUS_DISTANCE...提问2 我想使用android camera2 API获取从对象到android设备的距离。...我已经在谷歌样本Camera2应用程序中添加了一个SeekBar,但我找不到实现手动对焦的方法。 我在camera2,android中找到了手动对焦,但它在我的LG G4上无效。...camera2 API上,或者将自动焦点设置在活动开始时初始化的特定区域上。...将AF模式设置为关闭并将镜头聚焦距离设置为值后。预览不显示任何效果,但更改了焦点2值。 我怎样才能克服这个问题?

    1.6K10

    一篇文章带你了解Android 最新Camera框架

    这篇文章主要分下面几点来展开讲解: 1)Android 最新Camera 整体框架; 2)Android Camera2 和HAL3 的基本了解; 3)Camera2 介绍;...image.png (附:Android 8.0 重新设计了 Android 操作系统框架(在一个名为“Treble”的项目中),以便让制造商能够以更低的成本更轻松、更快速地将设备更新到新版 Android...如果某一次的 Capture 没有配置预览的 Surface,例如拍照的时候,就会导致本次 Capture 不会将画面输出到预览的 Surface 上,进而导致预览画面卡顿的情况,所以大部分情况下我们都会将预览的...根据指定的相机 ID 连接相机设备。 提供将闪光灯设置成手电筒模式的快捷方式。...11) Request的整体处理流程 image.png 三、 代码实战:如何拍摄单张照片 拍摄单张照片是最简单的拍照模式,它使用的就是单次模式的 Capture,我们会使用 ImageReader

    1.8K41

    Camera2 Extensions

    Extensions API的用法可以参考Android官方账号发表的推文 使用 CameraX Extensions API 将特效应用到照片上 Camera2 Extensions API的用法就看这篇文章啦...:高动态范围,可以让最终成像获得更多的动态范围和图像细节,比如拍照时使用不同的AE配置,让高光区域不过曝,暗光区域不欠曝以达到最佳成片效果 EXTENSION_NIGHT:夜景算法,可在暗光条件下抑制噪点以提升图像质量...以EXTENSION_HDR(高动态范围)为例,可以看到右侧生效HDR效果的图像,左下角暗光区域的椅子和石头还是可以看清的,顶部区域太阳周围的过曝区域的处理也非常不错 (EXTENSION_HDR...mode底层的参数覆盖 拍照 extensionSession.capture(...); 拍照request能设置的key也必须来自 CameraExtensionCharacteristics#...getAvailableCaptureRequestKeys 其余key设置将无效,被特定extension mode底层的参数覆盖 最后 Camera Extensions的设计对于第三方影像开发者来说肯定是非常好的

    1.9K40

    Android CameraX 知识点

    2 CameraX 和 Camera2的区别 Android 现在使用相机主要是通过CameraX和Camera2。常见应用的开发使用CameraX库调用相机就可以了。...如果要低级别(更底层)的相机控件来支持复杂用例。那么Camera2就是我们的最优选择。 原先使用相机,需要自己配置很多选项。并且要注意相机对象和预览数据的释放等,配置繁琐。...而Google封装了Camera2,帮我们简化了很多相机的配置和管理,让开发者只需要关注预览,拍照,分析。等实际场景。将这一整套方法库封装成了CameraX,后来合并到Jetpack库中。...2.1 CameraX的特点: 总结一下CameraX的一些特点,一家之言。仅供参考。 支持Android API 21 及以上版本,覆盖现有Android设备的98%以上。...关注于相机输出的图片等数据。 3.

    1.9K20

    CameraX 1.1 有哪些新的特性发布?

    它提供一致且易用的 API 接口,适用于大多数 Android 设备,并可向后兼容至 Android 5.0 (API 级别 21)。...CameraX 发布新版本频繁,而 Camera2 则随着 Android 的版本而更新; CameraX 可以在您不熟悉相机的情况下也能够进行开发,而 Camera2 则需要您对相机的专业知识有更深层次的了解...在示例代码中,我们创建了 ImageAnalysis 实例,为图像缓冲区指定了所需的分辨率和背压策略,并调用新的 setOutputImageFormat 方法以请求 RGBA 8888 格式的输出。...HDR (高动态范围) : 拍照时使用不同的自动曝光 (AE) 配置,以获得最佳效果。 NIGHT (夜间) : 在低照度环境下 (通常是在夜间) 捕获最佳静态图像。...() 方法来设置曝光补偿 camera.cameraControl.setExposureCompenstation(++exposureIndex) // 使用 exposureCompensationStep

    1.7K20

    Camera的预览帧率是如何设置的

    和Camera2两套API来说明如何调整相机预览帧率 Camera1 getSupportedPreviewFpsRange: 获取设备支持的fps range 总结下来有两个关键点: 每个Range...包含最小和最大值,如果最小值和最大值相等,则是固定帧率,否则就是动态帧率; 实际的帧率值需要除以1000,比如帧率max为26623,实际帧率为26.623 动态帧率的值具体是多少受环境光线的影响,也就是和...AE的关系比较大,可以参考ISP之自动曝光这篇文章 在我们固定fps的时候(比如【30,30】),可以会存在预览亮度变暗的情况 setPreviewFpsRange: 设置帧率range,值必须来自support...list 帧率的设置需要在startPreview之前 如下是笔者的手机相机支持的fps range情况,可以看到最大的动态范围为【8,30】,最大的固定帧率为【30,30】 Camera2 CameraCharacteristics...: 通过该Tag设置预览fps range 示例如下: 可以看到通过Camera2 API获取的fps range是没有乘以1000的 关于高帧率的设置,比如【240,240】,可以参考Android

    3.6K31
    领券