写一个练习程序时遇到的错误,百思不得其解:
GridView中适配的TextView用dimen资源设置宽度与高度时出现的错误,textview.setHeight(R.dimen.cell_height);当setHeight中的参数为R.dimen.cell_height时(cell_height为dimen的值,是66dp)GridView中的单个网格高度将充满全屏,而参数是(int)res.getDimension(R.dimen.cell_height)时,网格高度正常66dp。setWidth()无论参数是什么都正常!哪位能给解释一下:代码如下:
package yt.com.mu;import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;public class mainActivity extends Activity {
int[] textIds=new int[]{R.string.c1,R.string.c2,R.string.c3,R.string.c4,R.string.c5,R.string.c6,
R.string.c7,R.string.c8,R.string.c9};
int colorIds[]=new int[]{R.color.c1,R.color.c2,R.color.c3,R.color.c4,R.color.c5,R.color.c6,
R.color.c7,R.color.c8,R.color.c9};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
BaseAdapter adapter=new BaseAdapter() {

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TextView textview=new TextView(mainActivity.this);
Resources res=mainActivity.this.getResources();
textview.setWidth(R.dimen.cell_width);
textview.setHeight((int)res.getDimension(R.dimen.cell_height));
textview.setText(textIds[position]);
textview.setBackgroundResource(colorIds[position]);
textview.setTextSize(20);
return textview;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return getResources().getText(textIds[position]);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return textIds.length;
}
};
GridView grid=(GridView) findViewById(R.id.grid01);
grid.setAdapter(adapter);
}
}main.xml:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    >
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/theme"
    android:textSize="@dimen/title_font_size"/>
    <GridView
    android:id="@+id/grid01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:horizontalSpacing="@dimen/spacing"
    android:verticalSpacing="@dimen/spacing"
    android:numColumns="3"
    android:gravity="center"/>
</LinearLayout>dimens.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="spacing">8dp</dimen>
<dimen name="cell_width">60dp</dimen>
<dimen name="cell_height">60dp</dimen>
<dimen name="title_font_size">18sp</dimen>
</resources>