我想将尺寸最小约1800px宽度和1400px高度的图像加载到图像视图中,如下面的布局:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<CheckBox
android:id="@+id/customiseCheckBox"
android:layout_width="40dp"
android:layout_height="40dp"
android:button="@drawable/custom_checkbox_bkg"
android:layout_centerVertical="true" />
<ImageView
android:id="@+id/customizeSelImg"
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_marginRight="5dp"
android:layout_toRightOf="@id/customiseCheckBox"
android:contentDescription="@string/app_name"
android:scaleType="fitCenter"
tools:src="@drawable/artcard" />
</RelativeLayout>
我尝试过不同的比例类型,但加载的图像并未涵盖我为imageview指定的尺寸,而是加载rather too small
。
我也尝试过使用Picasso,就像下面一样;我使用的是回收图像:
@Override
public void onBindViewHolder(final CustomizeViewHolder viewholder, int position) {
final Customize customize = itemsList.get(position);
viewholder.customiseCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b){
customize.setChecked(b);
}
}
});
Picasso.with(context)
.load(customize.getIcon())
.fit()
.centerCrop()
.into(viewholder.customizeSelImg);
}
但这似乎不起作用。有没有什么办法可以在没有压缩或质量损失的情况下将完整图像显示到imageview的指定尺寸?谢谢。
答案 0 :(得分:0)
你需要根据设备重量X高度找到图像比例然后你可以设置动态图像高度重量。
public void setHeightWidthFromDeviceScreen() {
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
//set banner height using ratio
int bannerHeight = (int) (width / 1.8014705882);
//set height to image
imgSlider.getLayoutParams().height = bannerHeight;
}
1.8014705882
这是我基于metrics.heightPixels,metrics.widthPixels的图片比例,您可以根据自己的要求进行更改
找到图像的比例
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float ratio = ((float)metrics.heightPixels / (float)metrics.widthPixels
);