我的图像高度为200和400像素。我想要显示所有这些图像的方式是高度200像素。我的意思是说无论图像的大小,显示该图像我想显示高达200像素的图像。图像的其余部分是隐藏的。那怎么可以做到。我使用了一个代码进行解码,但是在这里它会拉伸更大尺寸的图像,然后显示它。在我的情况下,我不希望图像伸展,但只显示高达200像素的图像。
使用的代码
private Bitmap decodeFile(File f)
{
try
{
// decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
// Find the correct scale value.
final int REQUIRED_SIZE = 200;
int height_tmp = o.outHeight;
while(true)
{
if(height_tmp/2 < REQUIRED_SIZE)
break;
height_tmp/=2;
}
o.inSampleSize = height_tmp;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o);
}
catch (FileNotFoundException e)
{}
return null;
}
答案 0 :(得分:1)
只需编辑main.xml
android:layout_width="200dp"
android:layout_height="200dp"
答案 1 :(得分:1)
好的,请尝试使用layoutParams以编程方式执行相同的任务。
public void taskCompleted ()
{
ImageView iv = new ImageView(this);
Bitmap completionBitmap = null;
completionBitmap = BitmapFactory.decodeFile(CommonMessageConstants.BASE_IMAGE_FOLDER_ON_DEVICE +"completionimage.png");
iv.setImageBitmap(completionBitmap);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.randomImageView);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
//lp.setMargins(200, 200, 0, 0);
lp.addRule(RelativeLayout.CENTER_IN_PARENT);
rl.addView(iv, lp);
Toast.makeText (getApplicationContext(), msg, Toast.LENGTH_SHORT).show ();
}