레이아웃 크기에 대해서... 너무 실용성이 너무 떨어지는거 같아 질문드립니다..
일단 레이아웃을 잡을때 보통 크게 나누는건 weightSum 을 많이 사용하는데
작은 이미지들이나 버튼들에 이미지가 들어가게 되면 dp로 이미지 크기를 잡는 방법을 몰라서 제가 사용하는법이.. 좋지 않은거 같아
도움을 받고자합니다..
일단 제가 하는 방법은
처음에 앱이 실행되고 인트로에서 핸드폰의 화면 사이즈를 가지고 옵니다.
그리고 제가 앱디자인 크기를 2560 * 1440 를 기준으로 디자인했으면 그 값에서 차이를 구해서 얼마나 차이나는지를 가지고있구요
xml에서 레이아웃 잡은 뷰들을 가지고 옵니다. 그리고 그 뷰들의 크기를 정해주고 이미지를 비트맵으로 잘라서 백그라운드에 적용시키구요
말로하니 이상하네요.. 코드로 하나씩 보여드리는 편이 쉽을거같네요...
1. 핸드폰 사이즈 갭 구한다.
(Width에 기본적으로 1440값을 넣어 사이즈 갭을 구하구요.)
public static int getSize(double size) {
double resize = Width / size;
resize = MyWidth / resize;
return (int) resize;
}
2. xml에 view를 생성한다.
<EditText
android:id="@+id/ed_sports_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="false"
android:hint="진행시간"
android:textColor="@android:color/white"
android:textColorHint="@android:color/white" />
3. 자바코드에서 크기를 정확히 잡아준다.
Ed_SportsTime = (EditText) view.findViewById(R.id.ed_sports_time);
LinearLayout.LayoutParams day3 = (LinearLayout.LayoutParams) Ed_SportsTime.getLayoutParams();
day3.rightMargin = ImageSize.getSize(15);
Ed_SportsTime.setLayoutParams(day3);
Ed_SportsTime.getLayoutParams().height = ImageSize.getSize(43);
Ed_SportsTime.getLayoutParams().width = ImageSize.getSize(135);
Ed_SportsTime.setTextSize(TextReSize.NomarFontSize);
Ed_SportsTime
.setBackground(DrawableResize(R.drawable.bg_ed_select, ImageSize.getSize(120), ImageSize.getSize(43)));
Ed_SportsTime.setOnClickListener(this);
저는 이렇게 하니까.. 모든핸드폰을 커버는 되는데 ...
이게 레이아웃작업시간도 너무 오래걸리고 ... 그냥 xml에서 dp로 하고싶은데.. 그러면
이미지를 넣을경우 이미지가 깨지거나 안보이는 경우를 어떻게 대비하는지..
lg핸드폰은 어떻게 대처가 되는지.. 모르겠더라구요 ...
레이아웃을 어떻게 잡으면 좋을까요 ...
이건 너무 바보같이 한거죠 ?...