如何获得像Instagram一样1:1比例的Android Camera2?

2024-03-01

我的问题很简单:

如何获得安卓系统android.hardware.Camera2像 Instagram 一样 1:1 比例且不变形?

我用 GoogeSamples 项目进行了测试android-Camera2Basic https://github.com/googlesamples/android-Camera2Basic。但是当我以 1:1 的比例更改预览时,图像会变形。有人对此有什么想法吗?


谢谢@CommonsWare。

我按照你的建议使用负边距(顶部和底部)并且它有效。

为此,我只需更新自动调整纹理视图 https://github.com/googlesamples/android-Camera2BasicGoogeSamples 项目android-Camera2Basic https://github.com/googlesamples/android-Camera2Basic这边走:

public class AutoFitTextureView extends TextureView {

    //...
    private boolean mWithMargin = false;

    //...

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, widthMeasureSpec);
        int width = MeasureSpec.getSize(widthMeasureSpec);
        int height = MeasureSpec.getSize(heightMeasureSpec);
        int margin = (height - width) / 2;

        if(!mWithMargin) {
            mWithMargin = true;
            ViewGroup.MarginLayoutParams margins = ViewGroup.MarginLayoutParams.class.cast(getLayoutParams());
            margins.topMargin = -margin;
            margins.bottomMargin = -margin;
            margins.leftMargin = 0;
            margins.rightMargin = 0;
            setLayoutParams(margins);
        }

        if (0 == mRatioWidth || 0 == mRatioHeight) {
            setMeasuredDimension(width, height);
        } else {
            if (width < height) {
                setMeasuredDimension(width, width * mRatioHeight / mRatioWidth);
            } else {
                setMeasuredDimension(height * mRatioWidth / mRatioHeight, height);
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获得像Instagram一样1:1比例的Android Camera2? 的相关文章

  • 如何在android中实现触摸平滑图像橡皮擦?

    我已经从 API 演示中看到了finturePaint java 我想实现触摸平滑橡皮擦 通过在android中触摸移动来擦除部分图像 FingerPaint 告诉我要实现这个 mPaint setXfermode new PorterDu
  • 设置文本视图 Android 的文本颜色

    在 string xml 文件中我使用以下标签
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • Android Studio:XML 布局中的“包装在容器中”

    编辑 XML 布局文件时 Eclipse 有一项称为 包裹在容器中 的功能 重新格式化 gt Android gt 可让您选择一个或多个视图并在其周围包裹您选择的布局 Android Studio中有类似的东西吗 目前正在实施中 问题 69
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • 以编程方式将文本颜色设置为主要 Android 文本视图

    如何设置我的文本颜色TextView to android textColorPrimary以编程方式 我已经尝试了下面的代码 但它将 textColorPrimary 和 textColorPrimary Inverse 的文本颜色始终设
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • Android - AudioRecord类不读取数据,audioData和fftArray返回零

    我是 Android 新手 一直在开发音调分析器应用程序 最低 SDK 8 我读了很多关于如何实现 Audiorecord 类的文章 但我想知道为什么它在我录制时不读取任何数据 我尝试显示 audioData 和 fftArray 的值 但
  • 使用片段时应用程序崩溃

    我正在处理碎片和 我的代码中有一个我找不到的问题 logcat 指向我的一个片段中的这段代码 Override public View onCreateView LayoutInflater inflater ViewGroup conta
  • Mipmap 与可绘制文件夹[重复]

    这个问题在这里已经有答案了 我正在使用 Android Studio 1 1 Preview 1 我注意到 当我创建一个新项目时 我得到以下层次结构 不同 DPI 的 Mipmap 文件夹 不再有不同 DPI 的可绘制文件夹 我应该将所有资
  • Android 中如何通过彩信发送图片?

    我正在开发多媒体应用程序 我正在通过相机捕获一张图像 并希望将该图像和文本发送到其他号码 但我不知道如何通过彩信发送图像 MMS 只是一个 http post 请求 您应该使用执行请求额外的网络功能 final ConnectivityMa
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 卡片视图 单击卡片移至新活动

    我是 Android 编程新手 正在研究卡片布局 我想知道如何使其可点击 android clickable true android foreground android attr selectableItemBackground 我的卡
  • 在命令行上卸载 Android SDK 的选定部分

    这与 卸载旧的 Android SDK 版本 https stackoverflow com questions 15182377 uninstall old android sdk versions 除非我想在无头 Linux CI 服务
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所

随机推荐

  • Pandas to_sql 不适用于 SQL Alchemy 连接

    我使用以下代码通过 SQL alchemy 连接到 MySQL 数据库 from sqlalchemy import create engine import pandas as pd query SELECT FROM hello eng
  • Java Swing - 本地化温度

    有没有办法在Java中本地化温度 就像温度格式将基于区域设置 例如 对于挪威语 温度格式应为 14 C 度数符号之前应该有一个空格 但其他语言应该是14 C 以下示例演示了温度本地化 包括按区域设置特定属性对十进制值进行可自定义的舍入和格式
  • 覆盖 PHPDoc 中的返回类型

    我有课Abcwith 方法 正文并不重要 return SomeBaseClass function getAll 在幼儿班Abc called AbcChild我想重新定义仅返回类的类型 以便在 Netbeans 中正确查看它 我可以在不
  • JavaFX 3D 透视相机运动

    现在 感谢我的帮助先前的问题 https stackoverflow com questions 69249037 most simple rotate camera via mouse not working 以及来自用户 trashgo
  • mix.scripts 不起作用(webpack.mix.js)

    我有以下 webpack mix js const mix require laravel mix mix scripts resources assets js app js resources assets js definers js
  • 拉直弯曲轮廓

    给定一个具有易于识别边缘的轮廓 如何拉直它及其内容 如图所示 检测黑色边缘并为其拟合样条曲线 从该样条线上 您将能够绘制法线 并沿着它定期标记点 这形成了易于拉直的 u v 网格 要计算目标图像 请绘制水平行 这些行对应于源中的特定法线 然
  • 进入智能指针,如何处理代表所有权?

    我制作了一个动态图结构 其中节点和弧都是类 我的意思是弧是内存中的实际实例 它们并不是由节点到节点的邻接列表暗示的 每个节点都有一个指向它所连接的弧的指针列表 每个弧都有 2 个指针 指向它所连接的 2 个节点 删除节点会调用其每条弧的de
  • 绑定到127.0.0.2

    我在 Windows XP PC 上本地运行客户端 服务器应用程序 出于测试目的 我想运行多个客户端 服务器有一个配置文件 其中包含可以连接的客户端的IP地址 在现实世界中 这些都将位于具有不同 IP 地址的不同主机上 目前我可以使用绑定到
  • 如何使用自定义适配器对 listView 进行排序

    我正在制作一个应用程序 其中显示状态为在线和离线的人数 目前ListView是根据api设置的 我想根据人员的在线状态对 listView 进行排序 例如 如果没有 的人在线 然后列表视图首先显示他们 我在我的项目中实现了延迟加载图像 这是
  • 允许模拟类继承最终类

    我们可以使用 new C 关键字声明一个最终 密封的不可继承类final class Generator final 这个类可以从其他类继承 可以有也可以没有virtual 继承或不继承 但是 如何制作呢final 但允许一个类继承它 我们
  • div 内的垂直对齐范围[重复]

    这个问题在这里已经有答案了 http jsfiddle net UmHNL 2 http jsfiddle net UmHNL 2 div class container span Some text yay span div div cl
  • com.android.builder.testing.api.DeviceException:没有连接的设备!詹金斯错误

    我在 Windows 7 机器上安装了 Jenkins 2 73 1 没有从站 构建 Android 应用程序设置只有一项工作 我有connectedCheckgradle 任务作为作业构建过程的一部分执行 当我重新启动计算机并运行 Jen
  • 可拖动项目总是下降约 80px

    我对可拖动项目有奇怪的行为 每次我将它拖到我的堆栈上时 它都会从放置位置向下下降约 80px 这是一个近似值 也许对于另一部手机 它可能是其他值 x 值对我来说似乎没问题 这是代码 class GesturePage extends Sta
  • 如何在 DefaultRouter() 中进行反向操作

    我正在设置一个新的测试 并且我想进行相反的操作 router DefaultRouter router register profile views UserProfileViewSet base name profile urlpatte
  • 如何动态更改 Apollo Web Socket Link URI?

    目前我已经设置了 Apollo websocket 链接 如下所示 const wsLink new WebSocketLink uri ws example com graphql token getToken options recon
  • 如何将 Git 存储库从 Beanstalk 移至 Github?

    我的代码仓库在豆茎 http beanstalkapp com 如何将代码从 Beanstalk 移至Github https github com 建议的方法是 git clone bare url for beanstalk repo
  • R:如何从日期中删除当天? [复制]

    这个问题在这里已经有答案了 我在 df 列中有一堆日期 格式如下 dd mm yyyy 我希望它看起来像这样 01 2020 mm yyyy 如何从所有日期中删除这一天 Use format指定您想要的日期格式 date lt as Dat
  • 从多个 JavaScript 线程访问 IndexedDB

    概述 我试图避免从网页和网络工作人员访问 IndexedDB 时出现竞争情况 Setup 当用户使用站点时将项目保存到本地 IndexedDB 的网页 每当用户将数据保存到本地数据库时 记录就会被标记为 未发送 Web worker 后台线
  • 每当在树视图中添加新节点时创建事件处理程序

    我想编写一个自定义类 每当我向树视图添加一个节点时 它都应该调用一个事件 这样我就可以递归地运行它 我很少使用TreeView 但乍一看这是我的第一印象 由于无法继承 TreeViewCollection 因此您可能必须在新类上创建一个单独
  • 如何获得像Instagram一样1:1比例的Android Camera2?

    我的问题很简单 如何获得安卓系统android hardware Camera2像 Instagram 一样 1 1 比例且不变形 我用 GoogeSamples 项目进行了测试android Camera2Basic https gith