当前位置: 首页 > 知识库问答 >
问题:

在RelationveLayout中对ImageView使用layout_weight

夹谷俊远
2023-03-14

我使用的是一个RelativeLayout,左边有一个ImageView。在这里,我用150dp硬编码了layout_width,但这在其他屏幕上看起来不太好。在更大的屏幕上,150dp相当小。所以我考虑使用layout_weight,但我不能在relationvelayout上使用这个。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res    
/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/layout_quiz"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    android:padding="2dp"
    app:titleMarginStart="20dp"
    app:titleTextAppearance="@style/MyMaterialTheme.Base.TitleTextStyle"
    app:titleTextColor="@color/textColorPrimary">

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="@android:color/white"
        android:textStyle="bold|italic"/>

</android.support.v7.widget.Toolbar>

<TextView
    android:id="@+id/tv_topic"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/toolbar"
    android:background="@android:color/holo_green_light"
    android:gravity="center"
    android:padding="5dp"
    android:textColor="@android:color/white"/>

<RelativeLayout
    android:id="@+id/layout_question"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/toolbar"
    android:layout_toEndOf="@+id/tv_topic"
    android:layout_toRightOf="@+id/tv_topic"
    android:gravity="top"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/tv_question"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/bt_favorite"
        android:padding="5dp"
        android:text="Schritte der Trainingssteuerung. Was ist hier richtige Reihenfolge?"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold"/>

    <ImageButton
        android:id="@+id/bt_favorite"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="#00ffffff"
        android:src="@drawable/star"/>
</RelativeLayout>

<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_alignBottom="@+id/layout_question"
    android:layout_toEndOf="@+id/tv_topic"
    android:layout_toRightOf="@+id/tv_topic"
    android:background="?android:attr/listDivider"/>

<View
    android:id="@+id/view"
    android:layout_width="1dp"
    android:layout_height="fill_parent"
    android:layout_below="@+id/toolbar"
    android:layout_toEndOf="@+id/iv_image"
    android:layout_toRightOf="@+id/iv_image"  
    android:background="?android:attr/listDivider"/>

<LinearLayout
    android:id="@+id/layout_multiplechoice"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/layout_question"
    android:layout_margin="5dp"
    android:layout_toEndOf="@+id/iv_image"
    android:layout_toRightOf="@+id/iv_image"
    android:orientation="horizontal">

    <LinearLayout
        android:id="@+id/layout_multiplechoice_solutions"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:orientation="vertical"
        android:visibility="invisible">

        <CheckBox
            android:id="@+id/cb_solution1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"/>

        <CheckBox
            android:id="@+id/cb_solution2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"/>

        <CheckBox
            android:id="@+id/cb_solution3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"/>

        <CheckBox
            android:id="@+id/cb_solution4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"/>

        <CheckBox
            android:id="@+id/cb_solution5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:enabled="false"/>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout_multiplechoice_answers"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:orientation="vertical">

        <CheckBox
            android:id="@+id/cb_answer1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@android:color/holo_green_light"/>

        <CheckBox
            android:id="@+id/cb_answer2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@android:color/holo_green_light"/>

        <CheckBox
            android:id="@+id/cb_answer3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@android:color/holo_green_light"/>

        <CheckBox
            android:id="@+id/cb_answer4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@android:color/holo_green_light"/>

        <CheckBox
            android:id="@+id/cb_answer5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:buttonTint="@android:color/holo_green_light"/>
    </LinearLayout>
</LinearLayout>

<LinearLayout
    android:id="@+id/layout_singlechoice"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/layout_question"
    android:layout_margin="5dp"
    android:layout_toEndOf="@+id/iv_image"
    android:layout_toRightOf="@+id/iv_image"
    android:orientation="horizontal"
    android:visibility="gone">

    <LinearLayout
        android:id="@+id/layout_singlechoice_solutions"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:orientation="vertical"
        android:visibility="invisible">

        <RadioGroup
            android:id="@+id/rg_solution_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <RadioButton
                android:id="@+id/rb_solution1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:enabled="false"/>

            <RadioButton
                android:id="@+id/rb_solution2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:enabled="false"/>

            <RadioButton
                android:id="@+id/rb_solution3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:enabled="false"/>

            <RadioButton
                android:id="@+id/rb_solution4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:enabled="false"/>

            <RadioButton
                android:id="@+id/rb_solution5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:enabled="false"/>
        </RadioGroup>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout_singlechoice_answers"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:orientation="vertical">

        <RadioGroup
            android:id="@+id/rg_answer_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <RadioButton
                android:id="@+id/rb_answer1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <RadioButton
                android:id="@+id/rb_answer2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <RadioButton
                android:id="@+id/rb_answer3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <RadioButton
                android:id="@+id/rb_answer4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

            <RadioButton
                android:id="@+id/rb_answer5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </RadioGroup>
    </LinearLayout>
</LinearLayout>


<LinearLayout
    android:id="@+id/layout_info"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/layout_progressbar"
    android:layout_below="@+id/layout_question"
    android:layout_toEndOf="@+id/iv_image"
    android:layout_toRightOf="@+id/iv_image"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv_infotitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="7dp"
        android:textStyle="bold"/>

    <ScrollView android:id="@+id/sv_infoscroller"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fillViewport="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
        >


            <TextView
                android:id="@+id/tv_infotext"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tv_infotitle"
                android:layout_margin="7dp"
                android:scrollbars="vertical"/>

            <ImageView
                android:id="@+id/iv_infopicture"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/tv_infotext"
                android:layout_margin="7dp"/>
        </LinearLayout>

    </ScrollView>

</LinearLayout>

<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:layout_alignTop="@+id/layout_progressbar"
    android:layout_marginTop="5dp"
    android:layout_toEndOf="@+id/iv_image"
    android:layout_toRightOf="@+id/iv_image"
    android:background="?android:attr/listDivider"/>

<RelativeLayout
    android:id="@+id/layout_progressbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_toEndOf="@+id/view"   
android:layout_toRightOf="@+id/view" android:gravity="bottom"  
android:orientation="horizontal">

    <ImageButton
        android:id="@+id/bt_next"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="5dp"
        android:enabled="false"
        android:src="@drawable/ic_arrow_right"
        android:text="@string/next"/>

    <ImageButton
        android:id="@+id/bt_info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="16dp"
        android:layout_marginTop="15dp"
        android:layout_toLeftOf="@+id/bt_next"
        android:layout_toStartOf="@+id/bt_next"
        android:background="@null"
        android:src="@drawable/ic_info"
        android:visibility="invisible"/>

    <TextView
        android:id="@+id/tv_resultmessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_margin="15dp"/>

    <ImageButton
        android:id="@+id/bt_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="5dp"
        android:src="@drawable/ic_arrow_left"
        android:text="@string/back"/>

    <ProgressBar
        android:id="@+id/pb_quiz"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/bt_back"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:progress="1"/>
</RelativeLayout>
<ImageView
    android:id="@+id/iv_image"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@id/toolbar" android:src="@drawable/schmuck"/>

你知道解决办法吗?

共有1个答案

凌联
2023-03-14

可以使用PercentRelationVelayOut

     <android.support.percent.PercentRelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </android.support.percent.PercentRelativeLayout>

将此添加到gradle依赖项中:

compile 'com.android.support:percent:22.2.0'

见官方文件

 类似资料:
  • 我第一次使用Glide在ImageView中显示GIF。我已经按照几个站点的方式对其进行了编码。但它不起作用。我已经给出了以下所有代码:(如果我弄错了什么,请告诉我) 项目级build.gradle 应用程序级构建。gradle文件: activity_main.xml 活动Java代码: 单击“提交”按钮后,我没有看到GIF图像。

  • 我正在使用Glide库在imageview中加载图像,并使用以下代码。 灰色占位符在图像未加载之前可见,但在图像在imageview中加载后,占位符仍会出现,并在该图像后显示一些空白。 我如何解决这个问题。如果你有任何想法,请帮助我。

  • 我似乎无法从扩展Fragment的类中获得imageview上的onClick事件。我在这里做错了什么?我对Android开发相对来说是新手..

  • 我正在尝试为鼠标拖动的事件创建一个EventHandler。我将使用同一个处理程序对多个ImageView执行相同的操作。这就是我所做的。 但显然,我不能使用toFront或setTranslate方法或任何我用于ImageView的方法,因为e.getSource返回一个对象,而这些是对象类型无法使用的ImageView方法。显然,我也不能简单地将其转换为ImageView 我可以简单地使用内部

  • 问题内容: 不仅如此,其他代码也有相同的问题。只是不能使用ImageView。 环境:macOS,IntelliJ 造成原因:java.lang.IllegalArgumentException:无效的URL:无效的URL或找不到资源 问题答案: 该图像构造函数接受一个url作为参数。如果您未在其中添加协议,则它将假定该项目来自类路径。显然,不会出现在您的类路径中。 要从文件而不是类路径中读取,请

  • 我在用离子https://github.com/koush/ion 在我的应用程序中加载图像 我需要使用Transform将一些图像圈起来 但我在谷歌中遇到了一些崩溃,我想永远摆脱这个错误。 我怎么能摆脱它 这是我的课 这就是我得到的Crash