- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,在尝试将我的图像适本地拉伸(stretch)到宽度时经历了无数次挫折之后,我意识到我真正的问题是 setImageResource 的行为不同于 setImageDrawable(我正在尝试使用)。下面的 XML 使用 setImageResource 为我提供了完美的宽度、纵横比拉伸(stretch)图像,但是使用 setImageDrawable 图像没有拉伸(stretch)到宽度,对我应该如何处理这个问题有什么建议吗?我使用 setImageDrawable 是因为我从互联网上获取图像,欢迎使用替代品:)
<ImageView
android:id="@+id/item_image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"/>
哦,我试过 scaletype,结果最好的是 centercrop,但它的裁剪效果并不理想。
最佳答案
这个问题真的很陈旧,但万一有人遇到它,这个问题不完全是一个错误,而是 18 岁之前的 Android 版本中的错误实现决定。如果你的目标是 18 岁以上,你可能不会看到这个问题。不过,我目前的目标是在 16 岁时使用企业拥有的平板电脑。
解决方案是创建一个 ImageView 的父类(super class)来覆盖 onMeasure 以强制执行纵横比:
class MyImageView extends ImageView {
public MyImageView(Context context) {
super(context);
}
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
float iwidth = (float) View.MeasureSpec.getSize(widthMeasureSpec);
float swidth = (float) getDrawable().getIntrinsicWidth();
float sheight = (float) getDrawable().getIntrinsicHeight();
float iheight = sheight / swidth * iwidth;
setMeasuredDimension((int)iwidth, (int)iheight);
}
}
在你的布局中:
<com.mypackage.MyImageView layout_width="match_parent" etc... />
如果您的目标是 Android 18+,adjustViewBounds 应该会按预期工作。
关于android - 如何处理 ImageView setImageResource 与 setImageDrawable 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8150315/
我正在尝试设置一个图像,并在短暂的停顿(如闪烁)后将其更改为不同的图像;并且它应该在应用程序启动后自动启动。 public class MainActivity extends ActionBarAc
我需要更改 ImageView 中的图像,然后获取宽度。问题是,它给了我最后一张图片的宽度。 headpic.setImageResource(head[x]); int width = headpi
我有以下代码: public class PainLogger extends Activity implements OnClickListener, OnItemClickListener{
我正在尝试制作我的第一个应用程序 (yahtzee)。当您单击滚动按钮时,我想切换骰子的图像,现在每当我调用 setImageResource 时我都会崩溃。 主要 Activity : public
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
每当我尝试运行该行时,我的程序就会崩溃: d1.setImageResource(R.drawable.clubs9); 我想不通为什么。它似乎与我使用类似代码行的另一个程序相同。我试过添加 getR
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); set
我正在制作一款棋盘游戏,我正在为棋盘使用 10x10 GridView。我制作了一个扩展 BaseAdapter 的 ImageAdapter 类,它包含一个整数图标数组(9 个补丁文件),这些用于显
我有一个 imageView,我想显示您当前所在国家/地区的小图标。我可以获得国家代码,但问题是我无法动态更改 imageView 资源。我的图片文件都是小写的(例如:国家代码=US,图片文件=us)
我想根据我的字符串更改 imageview src,我有这样的东西: ImageView imageView1 = (ImageView)findViewById(R.id.imageView1);
我是 java/android 新手,正在制作一个测试应用程序。它有图像按钮,单击时会暂时切换到不同的图像。使用 裁剪原件 android:adjustViewBounds="true" androi
我试图在我的应用程序中显示一个图像,每次按下按钮时该图像都会发生变化。应显示的图像的名称位于我的对象中。我可以通过以下方式获取图像的名称 String nameOfImage = myObhect.g
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我有一个 imageView,我想显示您当前所在国家/地区的小图标。我可以获取国家/地区代码,但问题是我无法动态更改 imageView 资源。我的图像文件都是小写的(例如:国家/地区代码=US,图像
我尝试设置IV_status.setImageResource(R.drawable.red) 但它似乎不起作用,每当调用上面的代码时,整个应用程序都会运行 会崩溃。我也尝试过setBackgroun
我无法找到如何将图片设置为 setImageResource()。目前我可以像这样从 res/drawable 轻松添加: 在 ListViewAdapter 中: imageView = (Imag
我需要有关使用 setImageResource 方法设置随机图像的帮助。在可绘制文件夹中,我有一个名为 photo0.jpg、photo1.jpg...photo99.jpg 的 jpeg 文件。以
我正在尝试从我的 Assets 文件夹中获取图像并将它们设置到我的变量中,称为insectImage。这是我所做的: InsectRecyclerAdapter.InsectHolder insect
我正在构建另一个更大的应用程序,在某些时候我需要动态更改图像,并且我的应用程序崩溃了。因此,为了测试功能,我制作了另一个非常简单的应用程序,它只显示带有代码的图片: package com.examp
我想基于变量以编程方式为 ImageButton 设置 ImageResource。 例如:如果 size=5,我想将 setImageResource 设置为 R.drawable.five
我是一名优秀的程序员,十分优秀!