我有一个网格视图,其中有2列:
<GridView
android:id="@+id/therapy_grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="1dp"
android:numColumns="auto_fit"
android:verticalSpacing="2dp"
android:horizontalSpacing="2dp"
android:stretchMode="columnWidth"
android:adjustViewBounds="true"/>
它会拉伸以填满所有宽度,但我希望它防止拉伸。我也阅读了以下主题:link,但找不到解决方法。
答案 0 :(得分:0)
尝试一下:
CustomImageView.java
import android.content.Context;
import android.support.v7.widget.AppCompatImageView;
import android.util.AttributeSet;
public class CustomImageView extends AppCompatImageView {
public CustomImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
try {
getLayoutParams().height = getMeasuredWidth();
} catch (Exception e) {
//no-op
}
}
}
xml使用:
<com.example.myapplication.CustomImageView
android:id="@+id/imageView1"
android:layout_width="200dp"
android:layout_height="120dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@color/colorAccent" />
答案 1 :(得分:0)
要停止拉伸,请在您的xml中更改这样的StretchMode:
android:stretchMode="none"
或使用以下模式之一:
columnWidth
:每列均等延伸。
none
:禁用拉伸。
spacingWidth
:每列之间的间距被拉长。
spacingWidthUniform
:每列之间的间距被均匀拉伸。.
您可以找到更多详细信息here