Java 水平滚动视图中的可用空间
我在水平滚动视图中有一个线性布局,我想在其中动态显示图像。这是我的代码:Java 水平滚动视图中的可用空间,java,android,android-layout,Java,Android,Android Layout,我在水平滚动视图中有一个线性布局,我想在其中动态显示图像。这是我的代码: if(imgs.size()!=0){ 对于(int i=0;i=Build.VERSION\u code.LOLLIPOP){ 图像。设置高程(15); } image.setLayoutParams(lp); requestLayout(); } } } 和布局代码: 这就是结果: 我不想要滚动视图中的可用空间您正在将滚动视图高度设置为220dp,但将ImageView图像的高度和宽度设置为MATCH\u
if(imgs.size()!=0){
对于(int i=0;i=Build.VERSION\u code.LOLLIPOP){
图像。设置高程(15);
}
image.setLayoutParams(lp);
requestLayout();
}
}
}
和布局代码:
这就是结果:
我不想要滚动视图中的可用空间您正在将滚动视图高度设置为220dp,但将
ImageView图像的高度和宽度设置为MATCH\u PARENT
Android在默认情况下保留ImageView纵横比,因此它填充高度,但无法填充宽度,因此无法填充可用空间。
您可以使用setBackground
(但不能直接使用Bitmap
)或删除高度限制,或设置image.setScaleType(ImageView.ScaleType.FIT_XY)代码>(将拉伸图像)您正在将滚动视图高度设置为220dp,但将ImageView图像的高度和宽度设置为MATCH\u PARENT
Android在默认情况下保留ImageView纵横比,因此它填充高度,但无法填充宽度,因此无法填充可用空间。
您可以使用setBackground
(但不能直接使用Bitmap
)或删除高度限制,或设置image.setScaleType(ImageView.ScaleType.FIT_XY)代码>(将拉伸图像)发布布局代码…抱歉。post edited@SagiLowPost布局代码…抱歉。后期编辑@SagiLowi无法使用setbackground,因为可能有些药物的图片超过1张,无法删除滚动视图高度。那么我该怎么办呢?我写了另一个选项(image.setScaleType(ImageView.ScaleType.FIT_XY);
),但是图像的纵横比不会被保留。你也可以将重心设置为中心,这样在一些图像上会有空间,但是图像会居中。但是我不能更改纵横比。没有办法解决这个问题?这感觉不太好,我想你也可以匹配宽度,让高度裁剪。恐怕这些都是你的选择,我的朋友。你不可能拥有全部……谢谢,我又耍了一个花招。你知道海拔高度吗?图像没有阴影我无法使用setbackground,因为可能有些药物有超过1张图片,无法删除滚动视图高度。那么我该怎么办呢?我写了另一个选项(image.setScaleType(ImageView.ScaleType.FIT_XY);
),但是图像的纵横比不会被保留。你也可以将重心设置为中心,这样在一些图像上会有空间,但是图像会居中。但是我不能更改纵横比。没有办法解决这个问题?这感觉不太好,我想你也可以匹配宽度,让高度裁剪。恐怕这些都是你的选择,我的朋友。你不可能拥有全部……谢谢,我又耍了一个花招。你知道海拔高度吗?图像没有阴影
if (imgs.size() != 0) {
for (int i = 0; i < imgs.size(); i++) {
File imgFile = new File(Environment.getExternalStorageDirectory()
+ "/shafa/"
+ imgs.get(i)
.replace(" ", "+")
.replace(".jpg", "")
.replace(".JPG", "")
.replace(".png", ""));
if (imgFile.exists()) {
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
textview9.setVisibility(View.GONE);
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView image = new ImageView(DrugActivity.this);
image.setImageBitmap(myBitmap);
imgslayout.addView(image);
imgslayout.setGravity(0);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
image.setElevation(15);
}
image.setLayoutParams(lp);
image.requestLayout();
}
}
}
<HorizontalScrollView
android:id="@+id/horizontalScrollView"
android:layout_width="match_parent"
android:layout_height="220dp"
android:background="@color/blue"
android:fillViewport="true">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/imgslayout"
android:padding="10dp">
</LinearLayout>
</HorizontalScrollView>