Android布局最大宽度还是屏幕宽度?
是否可以将子屏幕的宽度设置为固定宽度,除非屏幕小于该宽度 i、 e.我希望下面的CardView通常为400dp,除非它位于小屏幕上,此时它应该是屏幕宽度(减去边距)Android布局最大宽度还是屏幕宽度?,android,Android,是否可以将子屏幕的宽度设置为固定宽度,除非屏幕小于该宽度 i、 e.我希望下面的CardView通常为400dp,除非它位于小屏幕上,此时它应该是屏幕宽度(减去边距) 获取屏幕的DP DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); float dpWidth = displayMetrics.widthPixels / displayMetrics.density; 检查是否小于400 i
获取屏幕的DP
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
检查是否小于400
if(dpWidth < 400){
cardView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
} else {
cardView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,(400 * displayMetrics.density + 0.5f)));
}
说setWidth未定义?是的,你说得对。您需要再次使用setLayoutParams。很抱歉。差不多了,如果屏幕宽度小于400(dp),我需要与屏幕宽度匹配的宽度…这就是if语句的第一部分所做的。
if(dpWidth < 400){
cardView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
} else {
cardView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,(400 * displayMetrics.density + 0.5f)));
}
android:layout_width="match_parent"
android:maxWidth="400dp"