在Android中,FIT_XY略微调整了我的图像

时间:2014-02-17 21:33:07

标签: android

我在png中有一个(演变版本的a)圆圈,边框很大,当ImageView显示FIT_XY时,它会被裁剪掉,看起来有点平方,任何想法?

RelativeLayout layout = new RelativeLayout(this);
layout.setLayoutParams(new LayoutParams(80, 80));
ImageView img = new ImageView(this);
img.setImageResource(R.drawable.myimg);
img.setLayoutParams(new LayoutParams(80, 80));
img.setScaleType(ImageView.ScaleType.FIT_CENTER);  // tried FIT_XY too
img.setAdjustViewBounds(true);
layout.addView(img);

2 个答案:

答案 0 :(得分:0)

尝试使用固定大小(直接指定高度和宽度)和fit_center比例类型或尝试使用adjustviewbounds属性。

答案 1 :(得分:0)

编辑:

  1. 尝试使用固定大小(直接指定高度和宽度)和fit_center比例类型或尝试使用adjustviewbounds属性。 (OP表示这在他们的案例中不起作用)

  2. 尝试将layout_margin添加到图像中。如果图像内容与图像边界紧密相关,则父母的边框等可能会妨碍。

  3. 确保LayoutParams与父布局匹配(在本例中为RelativeLayout.LayoutParams)。不确定这是否是一个问题,但我过去一直对此感到厌烦。

    RelativeLayout layout = (RelativeLayout)findViewById(R.id.test); // <-- Parent
    ImageView img = new ImageView(this);
    img.setImageResource(R.drawable.cow);
    img.setLayoutParams(new RelativeLayout.LayoutParams(400, 400)); // <-- Use Parent layout type
    img.setScaleType(ImageView.ScaleType.FIT_CENTER); 
    layout.addView(img);
    
  4. new RelativeLayout.LayoutParams(400,400)使用像素而不是dip。如果您实际上想要将布局大小调整为优惠,请参阅此帖子:Using layoutparams in relativeLayout with dp