Android以编程方式设置imageview而不进行拉伸

时间:2014-09-25 06:22:52

标签: android

我以编程方式设置ImageView以为ListView创建标题..

     ImageView imgView = new ImageView(getApplicationContext());
     imgView.setBackgroundResource(R.drawable.ic_v_order);
     list.addHeaderView(imgView);

但它适合整个屏幕标题,我不想拉伸它......我怎么能这样做?

4 个答案:

答案 0 :(得分:2)

请勿将其用作backgroundResource,因为背景会填满整个空间:

 ImageView imgView = new ImageView(getApplicationContext());
 imgView.setBackgroundResource(R.drawable.ic_v_order);
 list.addHeaderView(imgView);

将其用作imageResource它将显示其大小的图像:

imgView.setImageResource(R.drawable.ic_v_order);

并将其对齐在中心而不进行缩放使用:

imgView.setScaleType(ScaleType.CENTER);

答案 1 :(得分:1)

查看documentation

尝试使用:

mImageView.setScaleType(ScaleType.CENTER);

的解释:

ScaleType.CENTER : Center the image in the view, but perform no scaling

如果您使用FIT_CENTER

FIT_CENTER:使用CENTER缩放图片。

CENTER的作用是:

public static final Matrix.ScaleToFit CENTER

计算将保持原始src宽高比的比例,但也将确保src完全适合dst。至少一个轴(X或Y)将完全适合。结果集中在dst内。

答案 2 :(得分:0)

使用imageView.setScaleType(ScaleType.FIT_CENTER);

答案 3 :(得分:0)

使用setImageResourceScaleType.FIT_CENTER代替