我有3张图片,我希望能够获得像
这样的内容它应该占据屏幕的整个宽度,高度为100dp(或者我会选择的任何高度)。
我的图像是方形和大的。我希望它们具有100dp的高度,保持它们的纵横比(正方形)并且间隔均匀
我用这段代码得到的是3张宽度为1/3的图像,没有平方,间隔没有空格
我尝试了各种各样的东西(和scaleType
一起玩,...)但我被卡住了(除了为每个人手动设置宽度为100dp,我从概念上不喜欢)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="center">
<ImageView
android:id="@+id/img1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/img1"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="center">
<ImageView
android:id="@+id/img2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/img2"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:gravity="center">
<ImageView
android:id="@+id/img3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@drawable/img3"/>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
我是用代码做的:
int resx = getWindowManager().getDefaultDisplay().getWidth();
int spaceBetweenPics = (resx - 300) / 2; // Two spaces taking resolution - 3 images size
Bitmap [] pics = New Bitmap[3];
for (int i = 0; i < 3; i++) {
pics[i] = BitmapFactory.decodeResource(getResources(), R.drawable.img1 + i);
// With their names, they are contiguous in the drawables index
pics[i] = Bitmap.createScaledBitmap(pics[i], 100, 100, false);
}
在你的onDraw方法中:
for (int i = 0; i < 3; i++)
canvas.drawBitmap(pics[i], (100 * i + spaceBetweenPics * i), 0, null);