저는 ImageView와 ImageButton을 보유하고있는 RelativeLayout을 가지고 있습니다. ImageView는 배경 이미지의 컨테이너 역할을합니다. 이제는 고정 된 위치에 버튼을 설정하여 항상 배경 이미지의 동일한 위치에 나타납니다. 여기 버튼의 동적 위치 지정 [Android]
내가 사용하고 레이아웃 파일입니다<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1" android:layout_height="match_parent"
android:layout_width="match_parent" android:gravity="center_horizontal">
<ImageView android:src="@drawable/bg_1" android:id="@+id/imgView"
android:adjustViewBounds="true" android:layout_height="match_parent"
android:layout_width="match_parent" />
<ImageButton android:layout_width="120dp"
android:background="@drawable/button_1" android:layout_height="30dp"
android:id="@+id/imgButton" android:layout_marginLeft="100dp"
android:layout_marginTop="170dp" />
</RelativeLayout>
당신은 내가 그것을 단위로 DP를 사용하여 왼쪽/상단 여백의와 버튼의 위치를 시도했다, 그러나이하지 않는 볼 수 있듯이 작업. 배경 이미지가 아래로/아래로 축소되기 때문에 위치는 일종의 방식으로 동적이어야합니다.
x-/y- 위치의 픽셀 값을 사용하는 절대 위치 지정은 here처럼 Android에서 작동하지 않는 것으로 알고 있습니다. 나는 이것을 해결할 필요가 있고 어떻게 확신 할 수 없는가.
왼쪽/위쪽 여백에 대한 값을 계산해야하고 (어떻게 될지 확실하지 않음) 다음과 같이 설정해야합니까?
final float density = getResources().getDisplayMetrics().density;
int width = (int)((float)120 * density);
int height = (int)((float)120 * density);
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(width, height);
rlp.leftMargin = newMargin;
rlp.topMargin = newTopMargin;
ImageButton imgButton = (ImageButton) findViewById(R.id.imgButton);
imgButton.setLayoutParams(rlp);
희망 나는 ... 뭔가를 잊지 않았다
// 편집 : 나는 생각했다 ,이 문제에 대한 이유는, 스케일 이미지가 다른 "국경"을 가지고, 수에 따라 수 화면 크기. HVGA 화면에서 1 : 1.6 비율의 이미지를 사용하면 왼쪽과 오른쪽에 검은 색 막대가 표시되는 반면 WVGA 화면에서는 막대가 왼쪽에 있습니다. 기본 배율을 사용하고 있다고 가정합니다. 나는 그것을 들여다보고, 필요하다면 다시 게시 할 것이다 ...
배경 이미지의 크기 조정을 의미하는 경우. 예, 화면 해상도와 밀도가 다르기 때문입니다. 실제로이 문제를 해결하기 위해 뷰를 사용자 정의해야할지 모르겠다. – taymless
아. 다른 크기로 배경 이미지를 가지고 있지만 시각적 표현에 영향을 미칠 것이라고 생각했습니다. 이미지에 적용되는 크기 조정 효과가 줄어들 기 때문입니다. – taymless
사용자 정의 레이아웃을 작성해야합니다. 좋은 예가 있습니다 : http://www.google.com/events/io/2009/sessions/TurboChargeUiAndroidFast.html 분 44 –