如何在 2 种不同的布局之间设置 `ImageView`
How to set an `ImageView` between 2 different layouts
首先 ;我不能说出我的问题。因为我的英语程度不足以讲述这些。所以检查我的图像以了解我。顺便说一下,对此感到抱歉。
我想在两个不同的layouts.You之间设置ImageView
可以看到,第一个没有ImageView
。第二个有一个红色框( ImageView
)。我怎样才能将它写到我的布局中?
这是我的布局代码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="160dp"
android:background="@drawable/porfoy_resmi777" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="15dp"
android:paddingLeft="20dp"
>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gönderi:"
android:layout_marginLeft="60dp"
/>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Takip edilen"
android:layout_marginLeft="20dp"
/>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Takipçi"
android:layout_marginLeft="20dp"
/>
</LinearLayout>
<LinearLayout
android:layout_marginTop="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="75dp"
android:paddingLeft="25dp"
>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"/>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:layout_marginLeft="87dp"/>
<TextView
android:textColor="#FFFFFF"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:layout_marginLeft="70dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="60dp">
<ImageView
android:layout_marginLeft="50dp"
android:id="@+id/telefon_arama_ImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/cla"
/>
<TextView
android:id="@+id/telefon_numarasi"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="5"
android:text="numaram"
android:layout_marginLeft="20dp"
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="37dp"
android:orientation="horizontal"
android:background="@drawable/radyan"
>
<ImageView
android:id="@+id/btn_group"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/kedi"
/>
<ImageView
android:id="@+id/btn_sing"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bulok"
/>
<Button
android:id="@+id/profil_btn_duzenle"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Düzenle"
android:textAllCaps="false"
android:textSize="11sp" />
<Button
android:id="@+id/profil_cikis"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Çıkış"
android:textAllCaps="false"
android:textSize="13sp" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hakkımda :"
android:textStyle="bold"
android:textSize="11dp"/>
<TextView
android:id="@+id/Hakkında_bakıs_TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14dp"
android:text="bafbafgfdafadfad"
android:textStyle="italic|bold"
/>
</LinearLayout>
</ScrollView>
如您在屏幕截图中所示,您希望通过放置另一个图像视图来重叠图像视图,这可以使用相对布局来完成。
我将您的根布局更改为 "RelativeLayout"。检查 xml 你会明白我做了什么,这很容易。如果您有任何问题,请告诉我,我会写详细的解释。
您可以在此处了解有关 android 用户界面设计布局的更多信息
https://www.youtube.com/watch?v=OQ5ao6PGCAs
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearlayout_banner"
android:layout_width="match_parent"
android:layout_height="160dp"
android:background="@drawable/porfoy_resmi777"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:paddingLeft="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:text="Gönderi:"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Takip edilen"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Takipçi"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="75dp"
android:layout_marginTop="8dp"
android:paddingLeft="25dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="87dp"
android:text="0"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
android:text="0"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/linearlayout_banner"
android:layout_marginLeft="16dp"
android:layout_marginTop="-40dp"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/telefon_arama_ImageView"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@drawable/cla" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp">
<TextView
android:id="@+id/telefon_numarasi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_weight="5"
android:text="numaram"
android:textStyle="bold" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
您应该为此使用 RelativeLayout 而不是 LinearLayout。 LinearLayout 首先沿 X(水平方向)或 Y(垂直方向)使用最老的 child。 RelativeLayout 沿 Z 轴排序 children(即,将 children 彼此重叠)。由于需要叠加图片,所以需要使用RelativeLayout。最简单的方法是将图像放在代码中。快速 Google 搜索应该会给你几个例子。为了给您一个想法,您需要将根 LinerLayout 替换为 RelativeLayout。
// Then get reference to this in code
RelativeLayout rl = (RelativeLayout) findViewById(R.id.my_relative_layout);
// Then you can place your image wherever you want
// You will have to provide the dp values of the coordinates
ImageView iv = new ImageView(this);
iv.setBackgroundColor(Color.RED);
params = new RelativeLayout.LayoutParams(30, 40);
params.leftMargin = 50;
params.topMargin = 60;
rl.addView(iv, params);
以下 Whosebug 答案对此有更多详细信息:Set the absolute position of a view
我想在两个不同的layouts.You之间设置ImageView
可以看到,第一个没有ImageView
。第二个有一个红色框( ImageView
)。我怎样才能将它写到我的布局中?
这是我的布局代码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="160dp"
android:background="@drawable/porfoy_resmi777" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="15dp"
android:paddingLeft="20dp"
>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gönderi:"
android:layout_marginLeft="60dp"
/>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Takip edilen"
android:layout_marginLeft="20dp"
/>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Takipçi"
android:layout_marginLeft="20dp"
/>
</LinearLayout>
<LinearLayout
android:layout_marginTop="8dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="75dp"
android:paddingLeft="25dp"
>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"/>
<TextView
android:textStyle="bold"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:layout_marginLeft="87dp"/>
<TextView
android:textColor="#FFFFFF"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:layout_marginLeft="70dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="60dp">
<ImageView
android:layout_marginLeft="50dp"
android:id="@+id/telefon_arama_ImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/cla"
/>
<TextView
android:id="@+id/telefon_numarasi"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="5"
android:text="numaram"
android:layout_marginLeft="20dp"
android:textStyle="bold"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="37dp"
android:orientation="horizontal"
android:background="@drawable/radyan"
>
<ImageView
android:id="@+id/btn_group"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:src="@drawable/kedi"
/>
<ImageView
android:id="@+id/btn_sing"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bulok"
/>
<Button
android:id="@+id/profil_btn_duzenle"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Düzenle"
android:textAllCaps="false"
android:textSize="11sp" />
<Button
android:id="@+id/profil_cikis"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Çıkış"
android:textAllCaps="false"
android:textSize="13sp" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hakkımda :"
android:textStyle="bold"
android:textSize="11dp"/>
<TextView
android:id="@+id/Hakkında_bakıs_TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14dp"
android:text="bafbafgfdafadfad"
android:textStyle="italic|bold"
/>
</LinearLayout>
</ScrollView>
如您在屏幕截图中所示,您希望通过放置另一个图像视图来重叠图像视图,这可以使用相对布局来完成。
我将您的根布局更改为 "RelativeLayout"。检查 xml 你会明白我做了什么,这很容易。如果您有任何问题,请告诉我,我会写详细的解释。
您可以在此处了解有关 android 用户界面设计布局的更多信息 https://www.youtube.com/watch?v=OQ5ao6PGCAs
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/linearlayout_banner"
android:layout_width="match_parent"
android:layout_height="160dp"
android:background="@drawable/porfoy_resmi777"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:orientation="horizontal"
android:paddingLeft="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:text="Gönderi:"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Takip edilen"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Takipçi"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="75dp"
android:layout_marginTop="8dp"
android:paddingLeft="25dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="87dp"
android:text="0"
android:textColor="#FFFFFF"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
android:text="0"
android:textColor="#FFFFFF"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/linearlayout_banner"
android:layout_marginLeft="16dp"
android:layout_marginTop="-40dp"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/telefon_arama_ImageView"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_weight="1"
android:background="@drawable/cla" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp">
<TextView
android:id="@+id/telefon_numarasi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_weight="5"
android:text="numaram"
android:textStyle="bold" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
您应该为此使用 RelativeLayout 而不是 LinearLayout。 LinearLayout 首先沿 X(水平方向)或 Y(垂直方向)使用最老的 child。 RelativeLayout 沿 Z 轴排序 children(即,将 children 彼此重叠)。由于需要叠加图片,所以需要使用RelativeLayout。最简单的方法是将图像放在代码中。快速 Google 搜索应该会给你几个例子。为了给您一个想法,您需要将根 LinerLayout 替换为 RelativeLayout。
// Then get reference to this in code
RelativeLayout rl = (RelativeLayout) findViewById(R.id.my_relative_layout);
// Then you can place your image wherever you want
// You will have to provide the dp values of the coordinates
ImageView iv = new ImageView(this);
iv.setBackgroundColor(Color.RED);
params = new RelativeLayout.LayoutParams(30, 40);
params.leftMargin = 50;
params.topMargin = 60;
rl.addView(iv, params);
以下 Whosebug 答案对此有更多详细信息:Set the absolute position of a view