冰冻三尺非一日之寒,所有的创新都是在大量的知识积累的基础上出来的,所以只有不断的积累知识,才能有更好的创新。第一次写,写的不好大家多多包涵。我也是站在巨人的肩膀上
QQ截图20180621163034.png今天我遇到得问题是这三张图片是网络加载得,开始我写得高度是固定得,但是不同得手机显示有问题(问题就是屏幕宽得android手机图片变扁了)。仔细想了一下原因,就是屏幕变宽,布局拉伸造成了图片变扁了。
解决办法:1.自己计算布局得比例。我ui布局比例是宽是340高是139,计算了一下大概2.4左右 ,然后左右的边距是10dp
1.首先获取屏幕得宽度
Resources resources = this.getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
float density = dm.density;(屏幕得密度)
int widht=dm.widthPixels;(屏幕得宽度,这里是像素值)
//计算布局得宽度 20*density--->就是两边得间距转换成像素
int mLayoutHeight=(int) (widht-20*density);
//布局得高度
int mLayoutHeight = (int) (screenWidth / 2.4);
//然后手动设置控件得宽高
LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams(screenWidth, mHeight);
//设置布局左右上得间距
linearParams.leftMargin = dip2px(getContext(), 10);
linearParams.rightMargin = dip2px(getContext(), 10);
linearParams.topMargin = dip2px(getContext(), 12);
event_linear.setLayoutParams(linearParams);
dp转换成像素得方法
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
这样就完成了,可以解决任何屏幕得宽度来显示图片了,绝对不变形,如果在出现变形得话,那说明美工切得图片有问题
网友评论