0

나는 안드로이드 응용 프로그램을 제작하고있었습니다. 동적으로 질문을 만듭니다. 하지만 모바일 화면 크기에 따라보기가 제대로 작동하지 않습니다. 이 문제를 해결하는 방법을 모르겠습니다. 나는 다른 휴대폰 형태로 찍힌 이미지를 동봉했다. 화면 크기 -3.7 ", 화면 크기 -5.0"프로그래밍 방식으로 안드로이드에서 화면 크기 문제 수정

enter image description hereenter image description here

는 모든 요소의 크기는 안드로이드에 반응하는 화면을 표시 할 수있는 한 도움 size.can 화면에 따라 다양합니다. 내 코드는

...

lView.setBackgroundColor(Color.parseColor("#FFFFFF")); 
lView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
LinearLayout.LayoutParams layoutParams2 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 220); 
GradientDrawable gdtitle = new GradientDrawable(); 

gdtitle.setCornerRadius(5); 
ImageView title = new ImageView(Main2Activity.this); 
title.setImageResource(R.drawable.logo); 
title.setLayoutParams(layoutParams2); 
title.setBackgroundDrawable(gdtitle); 
lView.setOrientation(LinearLayout.VERTICAL); 
lView.addView(title); 

GradientDrawable gd3 = new GradientDrawable(); 
gd3.setCornerRadius(30); 
gd3.setColor(Color.parseColor("#003366")); 
gd3.setStroke(0, 0xFF000000); 

TextView uname1 = new TextView(Main2Activity.this); 
uname1.setText("Hello , "+Sessionname); 
uname1.setGravity(Gravity.LEFT); 
uname1.setTextColor(Color.parseColor("#003366")); 
uname1.setTextSize(20); 
uname1.setLayoutParams(l2); 

et1 = new TextView(Main2Activity.this); 
et1.setHeight(100); 
et1.setTextColor(Color.WHITE); 
et1.setHintTextColor(Color.WHITE); 
et1.setGravity(Gravity.CENTER); 
et1.setHint("Select Date"); 
et1.setBackgroundDrawable(gd3); 
et1.setTextSize(15); 
et1.setLayoutParams(l2); 

lView.setOrientation(LinearLayout.HORIZONTAL); 

LinearLayout.LayoutParams l4 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); 
l4.gravity=Gravity.CENTER; 
lHorizontalView1.setOrientation(LinearLayout.HORIZONTAL); 
lHorizontalView1.setLayoutParams(l4); 
lHorizontalView1.addView(uname1); 
lHorizontalView1.addView(et1); 
lView.addView(lHorizontalView1); 

답변

1

당신은 픽셀에 값을 하드 코딩하고 있습니다. 예를 들어 키의 높이를 setHeight(100)이라고하면 View100px 높이로 설정합니다. 그러나 화면 밀도가 다르기 때문에 완전히 다르게 보일 것입니다. 고침 화면 크기 (예 : 5 인치)가 주어지면 한 장치의 해상도는 480x800이고 다른 장치의 해상도는 1440x2560 일 수 있습니다. 100px의 설정은 현재 가지고있는 것과 똑같습니다.

사용 Display Metrics 대신 화면 밀도를 검색 장치로 대신 (px) 화소 device independent pixels (dip 또는 dp)를 사용한다. 그래서 당신이 뭔가로 설정해야 할 수도 있습니다

setHeight(100 * getResources().getDisplayMetrics().density);

그러나, 원하는 높이가 그 100dp 될 것으로 작게 할 수 있습니다 : 예를 들어, 당신은이 같은 장치의 밀도에 따라 높이를 설정할 수 있습니다 대신 50처럼. 원하는 결과가 나올 때까지 계속 플레이하십시오.

귀하의 View 기기간에 균일하게 보입니다.