我在用户从Dose Type微调器中选择一个项目后动态加载一些信息。信息位于主屏幕底部的相对布局内。
相对布局具有基于微调器中所选项目动态加载的图像视图。使用毕加索调整图像大小。 看起来使用毕加索进行大小调整会导致问题,但离不开......因为原始图像太大了。
图像视图不居中......无论如何,它始终显示在相对布局的左上角。
有问题的imageview是布局中的第二个... id为id + + id / imgDoseTypeInfo
请帮忙
<ImageView
android:id="@+id/imgHelpIcon_AddDrugActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:src="@drawable/ic_help"/>
<TextView
android:id="@+id/lblDoseTypeName_AddDrugActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="sample text"
android:gravity="center"
android:layout_toRightOf="@+id/imgHelpIcon_AddDrugActivity"
android:textColor="@color/normaltextcolor"
android:layout_alignBaseline="@+id/imgHelpIcon_AddDrugActivity"
android:textStyle="bold"/>
<TextView
android:id="@+id/lblDoseTypeDesc_AddDrugActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/lblDoseTypeName_AddDrugActivity"
android:layout_alignLeft="@+id/imgHelpIcon_AddDrugActivity"
android:text="@string/pediatric_calc_info"
android:textColor="@color/normaltextcolor"
android:layout_marginBottom="10dp"/>
<ImageView
android:id="@+id/imgDoseTypeInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imgHelpIcon_AddDrugActivity"
android:layout_centerHorizontal="true" />
</RelativeLayout>
cmbDosageType.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectedDoseType = (DosageType) parent.getItemAtPosition(position);
lyDoseTypInfo.setVisibility(View.VISIBLE);
LoadDoseTypeInfo(selectedDoseType.getCalcType(), selectedDoseType.name);
}
});
private void LoadDoseTypeInfo(String calcType, String doseName) {
String doseDesc = "";
switch (calcType) {
case "vol_liquid":
doseDesc = getResources().getString(R.string.vol_liquid_info);
break;
case "num_tablets":
doseDesc = getResources().getString(R.string.num_tablets_info);
break;
case "pediatric_calc":
doseDesc = getResources().getString(R.string.pediatric_calc_info);
break;
case "dose_bodyweight_tablet":
doseDesc = getResources().getString(R.string.dose_bodyweight_info);
break;
case "dose_bodyweight_liquid":
doseDesc = getResources().getString(R.string.dose_bodyweight_info);
break;
case "dose_bodyweight_unit":
doseDesc = getResources().getString(R.string.dose_bodyweight_info);
break;
}
lblDoseTypeName.setText(doseName);
lblDoseTypeDesc.setText(doseDesc);
Picasso.with(getApplicationContext())
.load(R.drawable.vol_liquid)
.resize(600,600)
.into(imgDoseTypeInfo);
}
答案 0 :(得分:0)
将android:layout_centerInParent="true"
用作ImageView
的属性。
删除代码中的android:layout_below="@+id/imgHelpIcon_AddDrugActivity"
。
试试这个。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgHelpIcon_AddDrugActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:src="@drawable/ic_help"/>
<TextView
android:id="@+id/lblDoseTypeName_AddDrugActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/imgHelpIcon_AddDrugActivity"
android:layout_toRightOf="@+id/imgHelpIcon_AddDrugActivity"
android:gravity="center"
android:text="sample text"
android:textColor="@color/normaltextcolor"
android:textStyle="bold"/>
<TextView
android:id="@+id/lblDoseTypeDesc_AddDrugActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/imgHelpIcon_AddDrugActivity"
android:layout_below="@+id/lblDoseTypeName_AddDrugActivity"
android:layout_marginBottom="10dp"
android:text="@string/pediatric_calc_info"
android:textColor="@color/normaltextcolor"/>
<ImageView
android:id="@+id/imgDoseTypeInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
</RelativeLayout>
答案 1 :(得分:0)
如果您使用<RelativeLayout>
,请使用以下代码将图片置于父版面的中心
<ImageView
android:id="@+id/imgDoseTypeInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:gravity="center"
android:layout_centerInParent="true"/>
答案 2 :(得分:0)
我认为你的相对布局宽度不匹配,父母需要更多的澄清才能尝试以下代码android:layout_centerHorizontal =“true”
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imgHelpIcon_AddDrugActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginStart="10dp"
android:src="@mipmap/ic_launcher_round"/>
<TextView
android:id="@+id/lblDoseTypeName_AddDrugActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="sample text"
android:gravity="center"
android:layout_marginTop="5dp"
android:textColor="#313131"
android:layout_toEndOf="@+id/imgHelpIcon_AddDrugActivity"
android:textStyle="bold"/>
<TextView
android:id="@+id/lblDoseTypeDesc_AddDrugActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_toEndOf="@+id/imgHelpIcon_AddDrugActivity"
android:layout_below="@+id/lblDoseTypeName_AddDrugActivity"
android:text="pediatric_calc_info"
android:textColor="#313131"
android:layout_marginBottom="10dp"/>
<ImageView
android:id="@+id/imgDoseTypeInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher_round"
android:layout_below="@+id/imgHelpIcon_AddDrugActivity"
android:layout_centerHorizontal="true" />
</RelativeLayout>