标签: aspect-ratio

如何在android中的图像按钮上保持宽高比?

我有5个方形的ImageButtons,我想在屏幕的底部并排排列.我有每一组(不同的id):

        <ImageButton
         android:id="@+id/box1" 
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" 
         android:layout_gravity="center"
         android:adjustViewBounds="true"
         android:scaleType="fitXY"
         android:layout_weight="1"
         android:layout_margin="1dp"
         /> 
Run Code Online (Sandbox Code Playgroud)

我在主java中分配了这样的背景:

    int[] imageIds = new int[] {R.id.box1,R.id.box2,R.id.box3,R.id.box4,R.id.box5};
    for(int i = 0; i<5; i++){
        imageButtons[i] = (ImageButton) findViewById(imageIds[i]);
        imageButtons[i].setBackgroundResource(R.drawable.blank);
    }
Run Code Online (Sandbox Code Playgroud)

我想要做的是缩放宽度以便在屏幕底部整齐地并排放置(现在可以正常使用),但是高度也会自动缩放以匹配宽度.这可能吗?我不想使用setImageSource,因为它在图像按钮周围放置了一个边框.

android aspect-ratio imagebutton

37
推荐指数
3
解决办法
4万
查看次数

如何在Qt中维护小部件的宽高比?

如何在Qt中维护窗口小部件的宽高比以及如何使窗口小部件居中呢?

user-interface qt widget aspect-ratio

32
推荐指数
4
解决办法
3万
查看次数

当基于百分比的动态变化宽度时,使<div>正方形

我正在开发一个基于用户选择N生成NxN网格的Web应用程序.我希望网格的总宽度是相对的(即可用空间的100%),以便用户可以在各种纸张尺寸上打印.

我可以很容易地计算网格中方块的宽度%(即:100%/ N),但是我在计算高度时遇到了问题.网页的高度总是无限的,除非我人为地限制它,就像我说的那样,我不想做.

网格的高度和宽度约束是动态的而不是正方形时,如何使网格中的正方形为正方形与矩形?

html css aspect-ratio dimensions grid-layout

32
推荐指数
3
解决办法
4万
查看次数

VideoView匹配父高度并保持纵横比

我有一个像这样设置的VideoView:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/player" 
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

    <VideoView
        android:id="@+id/video"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:layout_centerVertical="true" />

    <ProgressBar
        android:id="@+id/loader"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

但VideoView匹配父容器的宽度,然后根据加载的影片的宽高比设置高度.
我想做的恰恰相反,我希望VideoView与父级的高度相匹配,同时保持宽高比不变,视频将被剪裁在两侧.

我设法拉伸VideoView来填充父级,但是不保持宽高比.

另一件事是,我将MediaController添加到VideoView,如下所示:

MediaController controllers = new MediaController(this) {
    @Override
    public void hide() {
        if (state != State.Hidden) {
            this.show();
        }
        else {
            super.hide();
        }
    }
};
controllers.setAnchorView(videoView);
videoView.setMediaController(controllers);

videoView.setOnPreparedListener(new OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mediaPlayer) {
        controllers.show();
    }
});
Run Code Online (Sandbox Code Playgroud)

这很好用,并且控制器始终保持打开状态,但在计算放置视频的位置时(因为它垂直居中),控制器的高度不会被考虑在内.

我的两个问题是:

  1. 如何使VideoView与父级的高度匹配,同时保持宽高比?
  2. 如何让VideoView考虑到它的控制器的高度?

谢谢.

android aspect-ratio dimensions android-videoview

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

使表格单元格正方形

如何确保桌子的每个单元格在不使用固定尺寸的情况下变成方形?并在改变宽度时保持响应.

table {
  width: 90%;
}
td {
  width: 30%;
}
tr {
  /** what should go here? **/
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
  </tr>
  <tr>
    <td>4</td>
    <td>5</td>
    <td>6</td>
  </tr>
  <tr>
    <td>7</td>
    <td>8</td>
    <td>9</td>
  </tr>
<table>
Run Code Online (Sandbox Code Playgroud)

css aspect-ratio css3 responsive-design css-shapes

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

根据高度保持div纵横比

我需要将元素的宽度保持为其高度的百分比.因此,随着高度的变化,宽度会更新.

相反的情况可以通过使用填充顶部的%值来实现,但填充左边的百分比将是对象宽度的百分比,而不是其高度.

所以使用这样的标记:

<div class="box">
  <div class="inner"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我想用这样的东西:

.box {
    position: absolute;
    margin-top: 50%;
    bottom: 0;
}
.inner {
    padding-left: 200%;
}
Run Code Online (Sandbox Code Playgroud)

确保根据箱子的高度保持箱子的纵横比.高度是流动的,因为它的边距百分比 - 随着窗户高度的变化,盒子的高度也会变高.

我知道如何用JavaScript实现这一点,只是想知道是否有一个干净的CSS解决方案?

css aspect-ratio css3 responsive-design

26
推荐指数
5
解决办法
2万
查看次数

Android将Px转换为Dp(视频宽高比)

可能重复:
在android中将像素转换为dp

我正在尝试将像素转换为dp.公式是什么?

让我们将640和480转换成dp.文档说这个

dp单位到屏幕像素的转换很简单:px = dp*(dpi/160)

但我认为这不是我需要的(我不知道如何使用它).我想我只需要论坛.我准备好了代码:

DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);

    switch(metrics.densityDpi)
    {
         case DisplayMetrics.DENSITY_LOW:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_MEDIUM:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_HIGH:
         int sixForty = ?
         int fourEighty = ?
         break;
    }
Run Code Online (Sandbox Code Playgroud)

android aspect-ratio screen-resolution

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

显示自动适合的启动画面图像

我使用以下样式显示用MonoDroid编写的Android应用程序的启动画面.然而,它似乎采取图像并最大化它以适应整个屏幕,同时搞乱了纵横比.因此,图像看起来巨大而可怕.

有没有办法让它最大化,但保持纵横比,所以它看起来仍然很好?

<style name="Theme.Splash" parent="android:Theme">
  <item name="android:windowBackground">@drawable/splashscreenimage</item>
  <item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是C#中的活动,它创建启动画面并转到登录.

  [Activity(MainLauncher = true, Theme = "@style/Theme.Splash", NoHistory = true)]
  public class SplashScreenActivity : Activity
  {
    protected override void OnCreate(Bundle bundle)
    {
      base.OnCreate(bundle);

      // Start our real activity
      StartActivity(typeof(LoginActivity));
    }
  }
Run Code Online (Sandbox Code Playgroud)

android splash-screen aspect-ratio xamarin.android

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

ImageMagick:如何将图像最小化为特定宽高比?

使用imagemagick,我想以最小的方式裁剪图像,以便它适合给定的宽高比.

示例:给出3038 x 2014 px的图像,我想将其裁剪为3:2的宽高比.然后生成的图像将是3021 x 2014 px,从原始图像的中心裁剪出来.

所以寻找一个类似的命令convert in.jpg -gravity center -crop_to_aspect_ratio 3:2 out.jpg.

crop imagemagick aspect-ratio

22
推荐指数
3
解决办法
8305
查看次数

目标C:如何修复图像的宽高比(而不是更改为适合图像视图帧)

我正在使用UIImagePickerController为我的应用程序选择图像.然而,我在维持所选图像的纵横比方面面临一些挑战

例如,

我手机上的原始图像如下(非方形图像):

在此输入图像描述

通过"移动和缩放"页面在iphone上选择图像以裁剪图像后,结果如下:(此处仍保持宽高比)

在此输入图像描述

我的应用程序将在带有方框(200 x 200)的UIImageView中显示所选图像.将所选图像设置为UIImageView(UIImageView.image = selectedImage)后,图像的宽高比不会保持,而是跟随UIImageView的框架:(图像看起来在我的UIImageView中现在倾斜):

在此输入图像描述

在这种情况下,有没有办法保持图像的纵横比?

编辑:更新预期结果

经过一番思考,我意识到解决我的问题的最好方法是确保对于这样的图像(非正方形),我需要将它们"转换"成方形图像,即填充图像顶部和底部的空白区域以制作广场例如

预期图片:(添加了顶部和底部边框)

在此输入图像描述

编辑:使用示例代码更新

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo 
{

    self.imageView.contentMode = UIViewContentModeScaleAspectFill;

    self.imageView.image = image;
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];

    //Compress image
    UIImage *image = [self scaleImage:img toSize:CGSizeMake(612.0,612.0)];

    self.imageData = UIImageJPEGRepresentation(image, 0.75);
}
Run Code Online (Sandbox Code Playgroud)

通过添加代码"self.imageView.contentMode = UIViewContentModeScaleAspectFill;",我能够在uiimageview中获取方形图像

在此输入图像描述

但似乎原始图像仍然不是方形图像,因此当我执行"UIImage*image = [self scaleImage:img toSize:CGSizeMake(612.0,612.0)];"时,仍会出现偏斜问题.我的假设是否正确?无论如何要缓解这个问题,因为我仍然需要在应用程序的其他地方显示"压缩"图像.

objective-c aspect-ratio uiimagepickercontroller ios

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