0
Im 화면에 표시해야하는 이미지 수에 따라 최대 1-4 개의 이미지 뷰를 만들어야하는 Android 앱을 만듭니다. 작은 코드를 작성했지만 화면을 4 개의 이미지 뷰로 균등하게 나누지 않는 것 같습니다. 내 2 위는 2 위보다 약간 크다. 다음은 .. 내 코드가 난 정말 문제가런타임시 이미지 뷰를 동적으로 만드는 방법은 무엇입니까?
private void CreateScreen()
{
int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
int matrixN = 2;
int maxWForEachScreen = screenWidth/matrixN;
int maxHForEachScreen = screenHeight/matrixN;
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayoutFullScreen);
ImageView imgView1 = new ImageView(LiveViewer.this);
ImageView imgView2 = new ImageView(LiveViewer.this);
ImageView imgView3 = new ImageView(LiveViewer.this);
ImageView imgView4 = new ImageView(LiveViewer.this);
int size = 3;
if(size >= 3 && size <= 4)
{
imgView1.setImageResource(R.drawable.icon);
imgView2.setImageResource(R.drawable.icon);
imgView3.setImageResource(R.drawable.icon);
imgView4.setImageResource(R.drawable.icon);
RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(100, 100);
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(100, 100);
RelativeLayout.LayoutParams params3 = new RelativeLayout.LayoutParams(100, 100);
RelativeLayout.LayoutParams params4 = new RelativeLayout.LayoutParams(100, 100);
params1.height = maxHForEachScreen/2;
params1.width = maxWForEachScreen/2;
params2.height = maxHForEachScreen/2;
params2.width = maxWForEachScreen/2;
params3.height = maxHForEachScreen/2;
params3.width = maxWForEachScreen/2;
params4.height = maxHForEachScreen/2;
params4.width = maxWForEachScreen/2;
params1.setMargins(0, 0, 0, 0);
params2.setMargins(maxWForEachScreen/2, 0, 0, 0);
params3.setMargins(0, maxHForEachScreen/2, 0, 0);
params4.setMargins(maxWForEachScreen/2, maxHForEachScreen/2, 0, 0);
relativeLayout.addView(imgView1, params1);
relativeLayout.addView(imgView2, params2);
relativeLayout.addView(imgView3, params3);
relativeLayout.addView(imgView4, params4);
}
}
테이블 레이아웃 또는 격자 레이아웃을 사용해보십시오. – Tugrul
getHeight() 및 getWidth() 대신'getSize (Point)'를 사용하십시오. 그들은 더 이상 사용되지 않습니다. 'maxWForEachScreen'과'maxHForEachScreen'에 어떤 정수 값을 구합니까? – Vikram
@Vikram 좀 더 자세하게 설명해 주시겠습니까? –