표 보기 내 응용 프로그램의 3 행 3 열에 있습니다. 내가 이것을 원하는 화면 크기에 관계없이,화면 크기의 장치입니다.
했을 받고 창의 크기가 설정 layoutparams 니다. 그러나 이것은 포기하지 않는 완벽한 선형으로 작동 weightsum 에 linearlayout.
그래서 우리가 사용할 수 있습니 weightsum 대트 또는 어떤 다른 안드로이드 객실을 사용할 수 있습니다. 감사에 대한 많은 시간과 반응이다.
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/text1view"
android:background="@drawable/home_bg"
android:gravity="center"
android:horizontalSpacing="10dip"
android:numColumns="3"
android:stretchMode="columnWidth" />
각각의 그리드 항목
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:안드로이드="http://schemas.android.com/apk/res/android" 안드로이드:id="@+id/GridItem" 안드로이드:layout_width="wrap_content" 안드로이드:layout_height="wrap_content" android:중력="center_horizontal" 안드로이드:방향="vertical">
<ImageView
android:id="@+id/grid_item_image"
android:layout_width="wrap_content"
android:layout_height="75dip"
android:layout_margin="0dip"
android:padding="0dip" >
</ImageView>
<TextView
android:id="@+id/grid_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/grid_item_image"
android:gravity="center_horizontal"
android:padding="0dip"
android:textColor="#000000"
android:textSize="10sp" >
</TextView>
의 코드를 접합기:
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.griditems, null);
holder = new ViewHolder();
holder.text1 = (TextView) convertView
.findViewById(R.id.grid_item_text);
holder.image = (ImageView) convertView
.findViewById(R.id.grid_item_image);
// if it's not recycled, initialize some attributes
holder.image.setImageResource(gridItemIds[position]);
holder.text1.setText(gridTitles[position]);
int h = mContext.getResources().getDisplayMetrics().densityDpi;
// holder.image.setLayoutParams(new LayoutParams(h-50,h-50));
convertView.setLayoutParams(new GridView.LayoutParams(h - 45,
h - 39));
// holder.image.setScaleType(ImageView.ScaleType.CENTER_CROP);
// holder.image.setScaleType(ImageView.ScaleType.FIT_XY);
// holder.image.setPadding(20, 20, 20, 20);
// convertView.setLayoutParams(new GridView.LayoutParams(Utils
// .getLayoutParameter(), Utils.getLayoutParameter()+50));
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new ModuleManager().startModuleACtivity(position, mContext);
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
static class ViewHolder {
TextView text1;
ImageView image;
}
pls 인
convertView.setLayoutParams(new GridView.LayoutParams(h-45, h-39));
에 도착했을 때 이 값은 일부 실험에서 서로 다른 크기 에뮬레이터입니다. 그러나 내가 생각한 그는 바로 정의하는 방법은 높이와 폭이다.
으로 이해되는 지금까지 질문을 게시하지 않는 모든 코드는,당신이 무엇을 하려고 하는 것은,당신이 원하는트에 나타납니다.
첫째로 사용하고 있어야 합니다 몇 가지 레이아웃을 넣어트습니다. 다음을 수행:
을 높이와 폭레이아웃을 채우 부모:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
그런 다음,설정 높이 및 너비트하 fill_parent 니다.
만,이것은 그냥 되어 솔루션이었을 수 있는 일이 방법입니다. 일부를 넣어 코드는 많은 것이 좋다. 이 당신을 위해 작동합니다.
업데이트: 만의 문제가 거짓말을 할 수 있습기:
convertView.setLayoutParams(new GridView.LayoutParams(h-45, h-39));
변경:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
convertView.setLayoutParams(new GridView.LayoutParams(params));
이 당신을 위해 작동합니다.
@preetha:먼저 이 예를 들어 봐 내가 이것을 사용하고 나의 레이아웃에 영향을 미치지 않았다 상관없이 고안 높이 및 너비....
다음과 같이 설정에서는 xml
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
희망이는 데 도움이...