这是我在GridView 中放置一些图像涂鸦的代码
public View getView(int position, View convertView, ViewGroup parent) {
ImageView v;
if(convertView == null) {
v = new ImageView(c);
v.setLayoutParams(new GridView.LayoutParams(90,90));
v.setScaleType(ImageView.ScaleType.CENTER_CROP);
v.setPadding(2, 2, 2, 2);
} else {
v = (ImageView) convertView;
}
v.setImageDrawable(c.getResources().getDrawable(ops[position]));
return v;
}
但是对于较小的机器,layoutParams太大了,有人知道我如何在java端为宽度和高度做(90dp,90dp)吗?
在XML:中创建维度
<dimen name="image_size">90dp</dimen>
然后从你的代码中获取:
int size = (int) getResources().getDimension(R.dimen.image_size);
v.setLayoutParams(new GridView.LayoutParams(size, size));
您还可以通过创建不同的values
文件夹,根据屏幕大小设置不同的尺寸。
例如,将一个大尺寸放在名为values-w600dp
的文件夹中(如果屏幕宽度大于或等于600dp,则会使用该文件夹),将较小尺寸放在简单的values
文件夹中(将有两个dimens.xml文件)。
您可以在文档中找到更多详细信息。