如何使android应用密度独立



我正在开发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

相关内容

  • 没有找到相关文章

最新更新