我正在Android Studio中开发照片编辑器。我的屏幕上有图像和图标,不适合其他屏幕(不同尺寸)。我在 manifest.xml 文件
中包含了以下支持屏幕代码
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
我开始知道密度独立是摆脱这种情况的方法。我不知道如何继续进行。请帮助我使我的应用程序密度独立的步骤是什么? activity_main.xml中
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_vertical|center"
android:background="#403E3E">
<LinearLayout
android:layout_marginTop="30px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center">
<SeekBar
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:max="200"
android:progress="100"
android:id="@+id/seekBar1" />
</LinearLayout>
<LinearLayout
android:id="@+id/middle_layout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
android:layout_gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10px"
android:id="@+id/imageView2"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher"
android:layout_gravity="center_vertical"
android:background="#ff0e0e0e" />
<SlidingDrawer
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:content="@+id/content"
android:handle="@+id/handle"
android:id="@+id/slidingDrawer"
android:orientation="horizontal"
android:alpha="0.5"
android:layout_gravity="right|top">
<LinearLayout
android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#11111111"
android:gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/brighticn"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:background="@drawable/brighticon"
android:layout_gravity="center_vertical" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/filtericn"
android:background="@drawable/filters" />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/handle"
android:background="@drawable/move" />
</SlidingDrawer>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="bottom"
android:layout_gravity="bottom">
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/scrollView"
android:layout_gravity="bottom"
android:background="#ff030101">
<LinearLayout
android:id="@+id/sublayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#ff030101">
<Button
android:id="@+id/buttonhide"
android:text="txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
答案 0 :(得分:0)
要真正拥有与密度无关的应用,您需要以不同的分辨率提供资源。 Android在处理这些问题时非常聪明。
添加图像时,您应根据要支持的屏幕格式创建较小的图像或较大的图像,并将它们放入该格式的特定文件夹中。像这样:
当屏幕密度高于drawable/icon.png
时,这会让Android使用hdpi
。但是会将drawable-hdpi/icon.png
用于特定类型的屏幕。
要更好地理解这一点,您可以阅读Android文档中的详细指南:http://developer.android.com/guide/topics/resources/providing-resources.html