【问题标题】:ImageView diplaying in one activity but not in aonther图像视图显示在一个活动中但不在另一个活动中
【发布时间】:2017-04-03 10:47:26
【问题描述】:

我有一个带有 2 个活动的 android 应用:activity_mainactivity_login

在我的活动之上,我有一个徽标。它在 activity_main 中显示良好,但在 activity_login 中却没有。

奇怪的是它们都使用相似的布局和相似的代码。

这是我的 activity_main.xml

<?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"
    tools:context=".app.MainActivity"
    android:background="@drawable/background_1">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/logo"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="36dp" />

    <Button
        android:id="@+id/button1"
        android:layout_width="195dp"
        android:layout_height="45dp"
        android:text="Sign a File"
        android:layout_marginTop="53dp"
        app:layout_constraintTop_toBottomOf="@+id/imageView"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintHorizontal_bias="0.502" />

    <Button
        android:id="@+id/button2"
        android:layout_width="195dp"
        android:layout_height="45dp"
        android:text="Button"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginTop="30dp"
        app:layout_constraintTop_toBottomOf="@+id/button4"
        app:layout_constraintHorizontal_bias="0.502" />

    <Button
        android:id="@+id/button3"
        android:layout_width="195dp"
        android:layout_height="45dp"
        android:text="Button"
        android:layout_marginTop="34dp"
        app:layout_constraintTop_toBottomOf="@+id/button1"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintHorizontal_bias="0.502" />

    <Button
        android:id="@+id/button4"
        android:layout_width="195dp"
        android:layout_height="45dp"
        android:text="Button"
        android:layout_marginTop="31dp"
        app:layout_constraintTop_toBottomOf="@+id/button3"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="8dp"
        app:layout_constraintVertical_bias="0.043"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent" />







</android.support.constraint.ConstraintLayout>

还有,这是我的 activity_login.xml

<?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"
    tools:context=".login.LoginActivity"
    android:background="@drawable/background_1">

     <ImageView
    android:id="@+id/imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/logo"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginTop="36dp" />

     <EditText
        android:id="@+id/usernameTextField"
        android:layout_width="291dp"
        android:layout_height="63dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="53dp"
        android:background="@color/editTextBackground"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Username"
        android:textColor="#000000"
        app:layout_constraintHorizontal_bias="0.506"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/imageView" />

    <EditText
        android:id="@+id/passwordTextField"
        android:layout_width="291dp"
        android:layout_height="63dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="0dp"
        android:background="@color/editTextBackground"
        android:ems="10"
        android:inputType="textPassword"
        android:text="Password"
        android:textColor="#000000"
        app:layout_constraintHorizontal_bias="0.506"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/usernameTextField" />

    <Button
        android:id="@+id/button"
        android:onClick="loginButtonClick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="66dp"
        android:background="@color/editTextBackground"
        android:text="Log In"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/passwordTextField"
        app:layout_constraintBottom_toBottomOf="parent"
        android:layout_marginBottom="8dp" />



</android.support.constraint.ConstraintLayout>

activity_login 的设计视图中,它可以很好地显示图像。但是,当我在模拟器/手机上运行测试时,它并没有显示出来。

我尝试从 login_activity 中删除所有其他视图,但仍然遇到同样的问题。我还尝试使用相同的 ConstarintLayout 创建一个新的活动 xml,在其中我只是将徽标添加为 imageView,当我运行应用程序时,徽标没有显示。

而且,在约束布局中使用相同 imageView 的相同徽标在我的 activity_main

中工作正常

更新:为什么投反对票?

UPDATE2:正如 rafsanahmad007 所建议的那样:

代替:

app:srcCompat="@drawable/logo" 使用:

android:src="@drawable/logo"

但是,它仍然没有解释为什么它在一个活动中使用 app:srcCompat 而不是另一个活动。

【问题讨论】:

    标签: android imageview android-drawable


    【解决方案1】:

    代替:

    app:srcCompat="@drawable/logo"
    

    使用:

    android:src="@drawable/logo"
    

    这里有一个很好的answer 了解区别。

    这是一个非常常见的错误。但我建议使用android:src,因为它在所有 appcompat 版本中更安全。

    如果您在您的应用程序中使用矢量绘图,那么您可以选择app:srcCompat。但是你需要检查gradle中的兼容性。

    【讨论】:

    • android:src 在 ConstraintLayout 中替换为 app:srcCompat。所以 android:src 在这里不起作用。
    • 我很高兴知道这一点!因为那是新事物...android:src 不能在 contrainlayout 中工作..我会怀疑!!
    • 谢谢,它有效。但是,这仍然不能解释为什么它在一项活动中起作用,而不是在另一项活动中起作用。
    【解决方案2】:

    尝试使用android:src="image_location" 而不是app:srcCompat="image_location"

    【讨论】:

      【解决方案3】:

      可能您在不同的活动中为图像视图android:id="@+id/imageView" 使用了相同的ID,因此如果问题再次存在,将出现第一个加载的,而第二个将不会出现,请使用android:src="image_location" 而不是使用@987654323 @

      希望它对你有用。

      【讨论】:

        【解决方案4】:

        使用android:src="@drawable/logo" 代替app:srcCompat="@drawable/logo"

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-09
          • 1970-01-01
          • 1970-01-01
          • 2012-12-16
          • 2012-07-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多