ImageView ScaleType.FIT_XY不能与setImageDrawable一起使用

时间:2015-08-20 18:47:05

标签: android imageview android-imageview scaletype

我需要在我的应用程序中复制一个ImageView,并在用户需要时更改它的大小。我在这做的是:

"aaData" : [ 
  [
   "person_id" : "888888",
   "ID" : "999999",
  ],
  [
   "person_id" : "8888889",
   "ID" : "9999990",
  ]
]

它不起作用!意味着当我增加视图的大小时,内部的图像不会被拉伸。 但是当我用public void testClick(View view) { ImageView im = new ImageView(this); im.setImageDrawable(((ImageView) view).getDrawable()); Point size = getSize();//size of the window al.addView(im, new AbsoluteLayout.LayoutParams(view.getWidth(), view.getHeight(), size.x / 2, size.y / 2)); im.setScaleType(ImageView.ScaleType.FIT_XY); im.setOnTouchListener(touchListener); } public void changeSize() { ... view.setLayoutParams(new AbsoluteLayout.LayoutParams(width + deltaX, height + deltaY, params.x, params.y)); } 更改行im.setImageDrawable(((ImageView) view).getDrawable());时,会发生奇怪的事情 有用! 任何想法?

我不想使用im.setImageResource(R.drawable.my_image);,因为我需要复制所点击视图的drawable,而不是资源中的静态视图。

编辑:当我在Galaxy Note 6中使用它时(我认为它是Android 5)它可以工作。但是在我的Android 4.1.2设备上,它没有!

编辑2:我用过

setImageResource

并且有效!

1 个答案:

答案 0 :(得分:0)

要解决您的问题,请使用以下代码更改ImageView尺寸

mImageView.getLayoutParams().width = myWidth;
mImageView.getLayoutParams().height = myHeight;

然后致电

mImageView.requestLayout();

让尺寸变化生效。

我相信这可以解决你的问题。