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インチ)の場合、1台のデバイスの解像度は480x800で、別のデバイスの解像度は​​となります。100pxの設定は、今のところどのように見えますか。

使用Display Metrics代わり画面密度を取得してユニットとしてdevice independent pixelsdip又はdp)の代わりに、画素(px)を使用します。たとえば、あなたはこのようなデバイスの密度に基づいて、あなたの高さを設定することができます

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

あなたが何かにそれを設定する必要がありますので、しかし、あなたの希望の高さは、それが100dpになるように小さくする必要があり代わりに50のように。あなたが望む結果が得られるまで遊んでください。

あなたのViewは、デバイス間で均一に見えます。

関連する問題