我有一张图片,ImageView
的宽度为45dp,高度为45dp。如果我使用手机,该图像看起来不错,但在另一个电话上的图像看起来很小。如果使用图片转换器并将xhdpi xxhdpi ...放入,图片仍然很小。
(我想在所有屏幕尺寸上都获得相同的体验。例如,在像素2宽度45dp高度45dp看起来非常好,Nexus宽度65dp高度65dp很好,三星tab3 100dp看起来非常好。我该怎么做?
对不起,我的英语不好。
答案 0 :(得分:0)
在应用程序的Dimens软件包中的res文件夹下,使用单独的dimen值,例如dimens-ldpi,dimens-hdpi,dimens-mdpi,dimens-xhdpi,dimens-xxhdpi,dimens-xxxhdpi。 在每个文件中创建一个值,并为它们使用不同的值。
或者,you can visit this question. There's multiple solution mentioned with example.
答案 1 :(得分:0)
您需要通过计算屏幕宽度和高度的比率来保持图像视图的长宽比。
创建一个Java文件,例如 ProportionalImageView :
public class ProportionalImageView extends ImageView {
public ProportionalImageView(Context context) {
super(context);
}
public ProportionalImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ProportionalImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
Drawable d = getDrawable();
if (d != null) {
int w = MeasureSpec.getSize(widthMeasureSpec);
int h = w * d.getIntrinsicHeight() / d.getIntrinsicWidth();
setMeasuredDimension(w, h);
}
else super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
然后使用此图像在xml文件中查看:
<com.example.ProportionalImageView
android:layout_width="matchParent"
android:layout_height="wrapContent"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@mipmap/img" />
在这里,用您的包名称替换 com.example。希望对您有帮助