在GridView中对齐和缩放图像
问题描述:
我有一个GridView,我将ImageView添加到并随机放置drawable作为生成网格的资源,如下图所示。在GridView中对齐和缩放图像
我想缩放图像,以便他们之间的唯一差距将是填充,我也想要匹配它之间的间距,列之间的行,使gridView将永远是一个正方形适合屏幕的宽度(加上边距)。图像之间的最小差距将是我设置的填充,所以如果屏幕大或小,图像将按比例放大或缩小以适应网格视图的宽度。
那么我该怎么做呢?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF" >
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_centerInParent="true"
android:layout_marginTop="50dp"
android:columnWidth= "50dp"
android:stretchMode="spacingWidthUniform"
android:gravity="center"
android:clickable="true">
</GridView>
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
randomPosition = rng.nextInt(gridSize);
imageView = new ImageView(mContext);
imageView.setPadding(2, 2, 2, 2);
}
else {
imageView = (ImageView) convertView;
}
imgSet();
return imageView;
}
public void imgSet(){
if (diff == 1){
imageView.setImageResource(mThumbIds[randomPosition]);
}
if (diff == 2){
imageView.setImageResource(mThumbIds2[randomPosition]);
}
if (diff == 3){
imageView.setImageResource(mThumbIds3[randomPosition]);
}
}
答
如果图像缩放是你的问题,你可以尝试缩放imagees以适合ImageView的,并把它们对电网..
尝试机器人: scaleType =“fitXY”
尝试scaleType中的其他选项也作为pe你的需求
会有一种方法来匹配网格的高度与宽度? – MDubzem 2014-10-19 01:51:11
我还需要在创建图像视图的代码中设置缩放类型,而不是在xml中,所以我不确定如何设置缩放类型,我看到我想要的类型是合适的中心 – MDubzem 2014-10-19 02:06:33
@MDubzem如果你需要通过代码设置它使用yourimageview.setScaleType(ScaleType.FIT_XY); [这里是开发链接] http://developer.android.com/reference/android/widget/ImageView.ScaleType.html) – 2014-10-20 07:25:10