标签: aspect-ratio

Android:MediaPlayer视频宽高比问题

我遇到了一个我无法解决的问题.我正在使用MediaPlayer类来播放视频; 但是,我总是失去原有的宽高比.这里提到了媒体播放器代码和xml代码.我尝试了很多东西,但仍然无法解决问题.我需要保持原始的宽高比.我已经在Android Manifest文件中将此活动声明为全屏.我还在媒体播放器代码之后附加了xml代码.请建议我.

private class ErrorListener implements OnErrorListener {
    // FIXME: @Override
    public boolean onError(MediaPlayer mp, int what, int extra) {
        String message = "Unknown error";
        switch (what) {
        case MediaPlayer.MEDIA_ERROR_UNKNOWN:
            message = "Unable to play media";
            showError(message);
            break;
        case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
            message = "Server failed";
            showError(message);
            break;
        case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
            message = "Invalid media";
            showError(message);
            break;
        }
        return false;
    }
}

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.videoview);
    Intent intent = getIntent();
    uri = intent.getData();
    new loadMovie().execute();
    mPreview = (SurfaceView) …
Run Code Online (Sandbox Code Playgroud)

android aspect-ratio media-player

6
推荐指数
1
解决办法
9123
查看次数

使用 CSS 强制纵横比在 Safari 上不起作用

以下代码在 Firefox 和 Chrome 中运行良好,但不适用于Safari(在 Mac 和 iPad 上测试):http : //jsfiddle.net/eFd87/

<div id="wrapper">
    <div id="content">
        <img src="http://farm3.staticflickr.com/2783/4106818782_cc6610db2c.jpg">        
    </div>
</div>

#wrapper {
    position: relative;
    padding-bottom: 33.33%; /* Set ratio here */
    height: 0;
}
#content {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: green;
    text-align: center;
}
#content img {
    max-height: 100%;
}?
Run Code Online (Sandbox Code Playgroud)

目标是让包装 div 保持固定的纵横比(在我的 Web 应用程序中它是一个轮播),并且其中的图像调整大小以适应 div(和中心)。

在 Safari 上,图像不显示,因为height: 0(这将使 img 的高度为 0)。带有height: 100%图像显示但不适合 …

css safari image aspect-ratio

6
推荐指数
1
解决办法
1万
查看次数

保持 Canvas 元素相对于背景图像的位置

我试图在Canvas我的背景中定位元素。

窗口重新调整大小以保持纵横比。背景随着窗口大小而拉伸。

问题是一旦窗口重新调整大小,元素位置就不正确。如果窗口稍微调整大小,元素会稍微调整它们的大小并且仍然在正确的位置,但如果窗口调整大小使其大小加倍,则定位完全关闭。

到目前为止,我使用了Grid,但也无济于事。这是 XAML

<Window x:Class="CanvasTEMP.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow"  ResizeMode="CanResizeWithGrip" SizeToContent="WidthAndHeight" MinHeight="386" MinWidth="397.5" Name="MainWindow1"
    xmlns:c="clr-namespace:CanvasTEMP" Loaded="onLoad" WindowStartupLocation="CenterScreen" Height="386" Width="397.5" WindowStyle="None" AllowsTransparency="True" Topmost="True" Opacity="0.65">

<ItemsControl ItemsSource="{Binding}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Canvas Height="77" Width="218">
                <Label Content="{Binding OwnerData.OwnerName}" Height="36" Canvas.Left="8" Canvas.Top="55" Width="198" Padding="0" HorizontalAlignment="Left" HorizontalContentAlignment="Center" VerticalAlignment="Center"/>
            </Canvas>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas>
                <Canvas.Background>
                <ImageBrush ImageSource="Resources\default_mapping.png" Stretch="Uniform"/>
                </Canvas.Background>
            </Canvas>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="ContentPresenter">
            <Setter Property="Canvas.Left" Value="{Binding OwnerData.left}" />
            <Setter Property="Canvas.Top" Value="{Binding OwnerData.top}" />
        </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)

用于数据绑定的类

public class Owner …
Run Code Online (Sandbox Code Playgroud)

c# wpf position canvas aspect-ratio

6
推荐指数
1
解决办法
2123
查看次数

如何使用图像比例从谷歌搜索图像?

如何使用图像比例从谷歌搜索图像?

我可以使用图像比率使用谷歌进行图像搜索吗?

search-engine aspect-ratio google-search google-image-search

6
推荐指数
1
解决办法
8378
查看次数

如何拍摄与预览尺寸相同的宽高比?

标题中所有答案的99.9%如下:

当你搜索List<Camera.Size>,由Camera.Parameters#getSupportedPictureSizes()提供时,尝试找到与通过Camera.Parameters.html#setPreviewSize(int,int)设置的相机预览大小相同的宽高比的大小,或者尽可能接近尽可能.

这很好,但是如果我找不到与预览尺寸相同的宽高比的图片尺寸(Android不能保证对于相机支持的每个预览尺寸都有相同宽高比的图片尺寸),和所有其他图片尺寸(尽可能接近)只是拉伸我的照片,如此这个问题?即使在Camera.Parameters中设置的图片大小和预览大小具有不同的宽高比,我如何制作与预览完全相同的宽高比的照片?

android aspect-ratio android-camera

6
推荐指数
1
解决办法
2235
查看次数

如何:当 x 轴和 y 轴处于不同比例时自动设置固定坐标比 (coord_fixed)?

我的目标是通过 .ggplot2 修复绘图的坐标纵横比coord_fixed()。我认为coord_fixed(ratio=1)独立于 x 轴或 y 轴的比例完成了这项工作。我的直觉:参数ratio是指坐标x的总范围总范围的比值坐标y的。暗示比率为 1 总是意味着 x 轴将与图中的 y 轴一样长。

然而,对于 1000 秒的 x 坐标和 y 坐标(例如百分比),coord_fixed 的行为并不像我预期的那样。

2 问题:

  1. 你能解释一下为什么 coord_fixed 考虑了数据的实际比例而不是整个坐标长度吗?
  2. 我可以以编程方式更改 coord_fixed 以始终引用 x 和 y 坐标值的整个范围吗?

这是一个插图

library("ggplot2")
set.seed(123)
df = data.frame(x=runif(11)*1000,y=seq(0,.5,.05))
ggplot(df, aes(x,y)) +geom_point() +coord_fixed(1)
Run Code Online (Sandbox Code Playgroud)

产生 在此处输入图片说明

通过 coord-fixed 中 x 和 y 值的比率重新缩放数据解决了这个问题

ggplot(df, aes(x,y)) +geom_point() +coord_fixed(1*max(df$x)/max(df$y))
Run Code Online (Sandbox Code Playgroud)

然而,这不是程序性的。我必须df$x手动指定才能达到预期的效果。请参阅问题 2:是否有一种明智的方法可以coord_fixed根据我的 ggplot 图中 x/y 轴上的数据自动重新缩放坐标?

在此处输入图片说明

plot r aspect-ratio ggplot2

6
推荐指数
1
解决办法
6580
查看次数

何获得s8可用屏幕的android?

我是android的菜鸟。我关于18:9设备可用高度的问题。当我尝试在这些纵横比中获得可用的屏幕时,我的应用程序可以正常运行所有android设备,但是何时?在三星银河s8中编译它不起作用。我正在尝试获取可用的设备屏幕。我已经尝试过这些链接中的方法

/sf/ask/3053963321/

https://android-developers.googleblog.com/2017/03/update-your-app-to-take-advantage-of.html

我动态地使用

DisplayMetrics metrics = this.getResources().getDisplayMetrics(); width = metrics.widthPixels; height = metrics.heightPixels ;

我试过了

private int getSoftButtonsBarHeight() {
        // getRealMetrics is only available with API 17 and +
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            DisplayMetrics metrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
            int usableHeight = metrics.heightPixels;
            getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
            int realHeight = metrics.heightPixels;
            if (realHeight > usableHeight)
                return realHeight - usableHeight;
            else
                return 0;
        }
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试设置参数MATCH_PARENT的高度时,它工作得很好。但是我需要找到可用的高度像素来按比例设计其他视图。

实际上,这些代码DisplayMetrics metrics = this.getResources().getDisplayMetrics(); height = metrics.heightPixels ;在我的Activity中有效,但是当我尝试在另一个窗口(从FramaLayout扩展并添加到Activity中)中使用它时,则无法正常工作。

这是我的代码块

public class StudentLoginActivity …
Run Code Online (Sandbox Code Playgroud)

android aspect-ratio uinavigationbar display

6
推荐指数
1
解决办法
751
查看次数

CSS 保持纵横比不起作用

这是最奇怪的事情,我以前曾多次使用过这种方法,但现在它似乎对我来说不起作用。

这是一个重复的问题,提供了此方法作为答案:

使用 CSS 保持 div 的纵横比

但由于某种未知的原因,它在 Firefox 和 Chrome 中对我来说是崩溃的。据我所知,它是根据我应用样式的元素的父元素计算填充...

在这种情况下,它不会查看.test,而是查看.parent计算填充:

.parent {
  width: 200px;
}

.test {
  width: 50px;
  background: red;
  padding-top: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<div class='parent'>
  <div class='test'></div>
</div>
Run Code Online (Sandbox Code Playgroud)

css aspect-ratio browser-bugs responsive-design responsive

6
推荐指数
2
解决办法
3万
查看次数

SwiftUi - 填充宽屏

特尔;博士

我无法在宽屏 (13:6) 手机上将图像准确地绘制到全屏上。如果我观察安全区域,错误是(可预测的)欠扫描。使用.edgesIgnoringSafeArea()(出乎意料地)在另一个方向上走得太远了。

更新

Apple DTS 建议这是一个错误,向我退还了一次支持事件,并邀请我提交错误报告。https://feedbackassistant.apple.com/feedback/8192204正在筹备中

警告讲师

我的假设.scaledToFill可能是错误的。我在最后解决这个问题。

代码

所以基本的我可以把它放在这里,它甚至不会减慢你的速度

struct ContentView: View {
    var body: some View {
        Image("testImage").resizable().scaledToFill()
//        .edgesIgnoringSafeArea(.all)
    }
}
Run Code Online (Sandbox Code Playgroud)

测试图像

测试图像是一个横向矩形,比例为 13:6,就像宽屏手机一样。(例如原始 iPhone X 的 812:375 比例。)灰色边缘不是图像的一部分。

测试图像

它标有其子框架,对应于窄(旧)手机 (16:9) 和打击垫 (4:3)。

运行时结果

Xcode 项目设置明确仅限横向,适用于平板电脑和手机。

对于窄手机和所有键盘,上面的代码,观察安全区域,像我期望的那样呈现测试图像:

第一个结果

但是在宽屏手机上,我无法让红色矩形与屏幕边缘重合。

宽电话

随着调用.edgesIgnoringSafeArea(),这是我们正在观察安全区域。自然地,我们的图像被映射到全屏的一个子集。

宽电话

随着对 的调用.edgesIgnoringSafeArea()。我希望这能完全填满屏幕,但它会过度扫描:

在此处输入图片说明

这是 Xcode 视图层次结构调试器对上一个的看法:图像被映射到一个比全屏的矩形。为什么?

在此处输入图片说明

事件顺序

如果我颠倒修饰符的顺序,并.edgesIgnoringSafeArea() 在之前 调用.scaledToFill(),我会得到纵横比失真,这.scaledToFill()应该可以防止。(请参阅屏幕截图中的圆变成椭圆。)解释这些操作是如何组成的,以及它们为什么不通勤,可能对回答我的主要问题大有帮助。

ipad 11 失真

解决方法

我认为上述应该有效,我不明白为什么不行。什么做 …

layout aspect-ratio safearealayoutguide swiftui

6
推荐指数
1
解决办法
281
查看次数

如何使用ight_layout 保持轴纵横比

我有一个带有颜色条和图例的图。我想将图例放置在绘图之外的颜色栏右侧。为了实现此目的,我使用 bbox_to_anchor 参数,但这会导致图例被截断:

import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import norm

_, ax = plt.subplots()

extent = np.r_[0, 1, 0, 1]
space = np.linspace(0, 1)
probs = np.array([[norm.cdf(x + y) for x in space] for y in space])
colormap = ax.imshow(probs, aspect="auto", origin="lower", extent=extent, alpha=0.5)
colorbar = plt.colorbar(colormap, ax=ax)
colorbar.set_label(f"Probability")
ax.scatter(
    [0.2, 0.4, 0.6], [0.8, 0.6, 0.4], color="r", label="Labeled Points",
)
plt.legend(loc="center left", bbox_to_anchor=(1.3, 0.5))
plt.title
plt.show()
Run Code Online (Sandbox Code Playgroud)

图例被切断

图例被切断

为了修复图例,我在 plt.show() 之前插入对 plt.tight_layout() 的调用,但这会导致纵横比扭曲:

纵横比扭曲的绘图

纵横比扭曲的绘图

如何显示整个图例并保留轴的纵横比?

python visualization data-visualization matplotlib aspect-ratio

6
推荐指数
1
解决办法
1569
查看次数