是否有可能不在Android Studio中构建适合Nexus ONE和Nexus S尺寸的应用程序?

时间:2017-09-18 21:19:14

标签: android android-studio

我主要使用Constraint布局。在布局资源文件中,我创建了常规的Large和XLarge XML文件。常规文件包含许多手机尺寸,包括Nexus ONE和Nexus S = 480 x 800 hdpi。

我理解使用约束但仍然在制作xhdpi imageButton并将其用于" normal"尺寸手机和约束它,我必须使图像特别小,以适应Nexus ONE和Nexus S手机。但是现在这种形象在大尺寸手机上比较小,对我来说也是一个问题。

我可以创建一个忽略480 x 800尺寸手机和更小尺寸手机的应用吗?然后在应用说明中添加我的应用适用于尺寸为720 x 1280及以上的手机?

有没有办法让我的应用程序在任何小于720 x 1280手机的手机上都无法正常工作?

Nexus ONE上的注册按钮尺寸合适:

enter image description here

现在,Nexus 6上的同一个Sing up按钮看起来太小了:

enter image description here

2 个答案:

答案 0 :(得分:1)

我建议您在AndroidManifest.xml中使用the <supports-screens> element。这将允许您编写类似的内容:

<supports-screens
    android:requiresSmallestWidthDp="360"/>

根据dp而非px进行思考非常重要。你提到想要一部720x1280手机;这是一款xhdpi手机非常好,所以720x1280像素实际上是360x640 dp。

答案 1 :(得分:0)

作为使ImageButtons具有不同大小的图像的替代方法,您可以尝试使用简单按钮,该按钮受限于ConstraintLayout中的各种指南:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/sign_up_button"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:text="Sign Up"
        app:layout_constraintRight_toLeftOf="@+id/right_guideline"
        app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintTop_toTopOf="@+id/top_guideline"
        app:layout_constraintBottom_toTopOf="@+id/bottom_guideline"
        app:layout_constraintHorizontal_bias="0.0" />

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/left_guideline"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.1"
        tools:layout_editor_absoluteY="0dp"
        tools:layout_editor_absoluteX="0dp" />

    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/right_guideline"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.9"
        tools:layout_editor_absoluteY="0dp"
        tools:layout_editor_absoluteX="0dp" />

    <android.support.constraint.Guideline
        android:id="@+id/top_guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_begin="0dp"
        app:layout_constraintGuide_percent="0.8" />

    <android.support.constraint.Guideline
        android:id="@+id/bottom_guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_begin="0dp"
        app:layout_constraintGuide_percent="0.9" />

</android.support.constraint.ConstraintLayout>

此按钮位于指南之间,指南定义为使按钮距离父布局的底部,左侧和右侧10%。按钮的宽度因此占总布局的10%。这将根据手机屏幕尺寸进行扩展和收缩。

请注意,在Button元素上,layout_width和layout_height都被有意设置为0dp。这告诉android动态地计算按钮的大小和位置。

enter image description here