我已经尝试了几个小时但没有取得任何成就。
这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/linearLayout1"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_gravity="center">
<TextView
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="A dog"
android:id="@+id/textView1"
android:textSize="50sp"></TextView>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/dog"
android:id="@+id/imageView1"></ImageView>
</LinearLayout>
</LinearLayout>
正如您在下面的屏幕中看到的,在小屏幕和大屏幕中一切正常
但我真正需要的是将文字放在图像下方。在容器中更改其顺序的结果是:
适用于比图像高的屏幕,但对于小屏幕,文字不可见。我该如何解决这个问题?请为解决方案考虑以下几点:
提前致谢
答案 0 :(得分:1)
您可以缩放图像以适合特定的宽度和高度
请参阅此处Scale
编辑:
您可以尝试类似
的内容public static final ImageView.ScaleType CENTER_INSIDE
自:API级别
均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或小于视图的相应尺寸(减去填充)。然后图像在视图中居中。从XML,使用以下语法:
android:scaleType="centerInside
编辑:您也可以使用位图..
像...这样的东西。
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int newWidth = 640;
int newHeight = 480;
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
// create the new Bitmap object
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, width,
height, matrix, true);
BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
ImageView imageView = new ImageView(this);
imageView.setImageDrawable(bmd);
imageView.setScaleType(ScaleType.CENTER);
linearLayout.addView(imageView, new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
setContentView(linearLayout); }
}
答案 1 :(得分:0)
我测试了该代码,它具有您正在寻找的行为。如果您需要更多帮助,请告诉我
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1"
>
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_gravity="center"
>
<LinearLayout
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_width="wrap_content"
android:id="@+id/linear2"
android:layout_alignParentBottom="true"
></LinearLayout>
<TextView
android:layout_above="@id/linear2"
android:text="TextView"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
></TextView>
<ImageView
android:id="@+id/imageiffel"
android:src="@drawable/my_image"
android:layout_above="@id/textView1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
></ImageView>
</RelativeLayout>
</LinearLayout>
</LinearLayout>