我正在开发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>
要真正能够拥有一个独立于密度的应用,你需要提供不同分辨率的资源。Android在处理这些方面真的很聪明。
在添加图像时,您应该根据要支持的屏幕格式创建较小的图像或较大的图像,并将它们放在该格式的特定文件夹中。像这样:
- res/
- 可拉的/
- 程序
- background.png
- drawable-hdpi/
- 程序
- background.png
- 可拉的/
这将使Android使用drawable/icon.png
,当你有任何其他屏幕密度比hdpi
。但是对于特定类型的屏幕,将使用drawable-hdpi/icon.png
。
为了更好地理解这一点,你可以阅读Android文档中非常详细的指南:http://developer.android.com/guide/topics/resources/providing-resources.html