Android의 다양한 화면 해상도에 대한 고정 된 위치에서 컨트롤을 어떻게 표시합니까?
-
20-09-2019 - |
문제
Android의 다양한 화면 해상도에 대한 고정 된 위치에서 컨트롤을 어떻게 표시합니까?
아래와 같은 화면 디자인이 있습니다
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/img_background_loadbackground">
<TableRow>
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="300sp"/>
</TableRow>
<TableRow>
</TableRow>
<ProgressBar
android:id="@+id/progressbar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</TableLayout>
HVGA (320x480) 해상도에서 작동하고, ProgressBar는 화면 하단에 나타나지만 다른 해상도 (WQVGA432-240x432)로 실행되면 ProgressBar가 화면 중간에 나타납니다. 고정 된 위치로 보여줄 수 없습니다.
아래에 매니페스트 파일 쇼를 사용하고 있지만 출력은 없습니다.
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
해결책이 없으므로 문제를 해결할 아이디어를 알려주십시오.
해결책
레이아웃이 다른 해상도 화면에서 작동하도록하려면 사용하여 크기를 조정해야합니다. dip
장치로. 예를 들어:
android:layout_marginRight="10dip"
dip
장치 독립 픽셀을 나타내며 레이아웃에서 이들을 사용한다는 것은 Android가 응용 프로그램을 실행하는 장치가 어떤 표시를하는지에 따라 레이아웃을 자동으로 스케일링 함을 의미합니다.
당신은 이것에 대해 읽을 수 있습니다 여러 화면 지원 Android 개발자 문서의 페이지. 이 문서에는 다른 디스플레이를 처리하기위한 다른 옵션도 있지만 사용한다고 생각합니다. dip
아마도 가장 쉬운 일입니다.
다른 팁
레이아웃을 정의한 방법에 따라 다릅니다. 레이아웃을 게시하면 여기에서 도움이됩니다.
나는 그것이 중간에 있다면 당신은 다음과 같은 것을 가지고 있다고 생각합니다.
android:layout_gravity="center"
그러나 예, XML을 게시하는 것은 약간 도움이 될 것입니다!
제휴하지 않습니다 StackOverflow