4

これは、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)のようにできる方法を知っている人はいますか?

4

1 に答える 1

5

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フォルダー(2つのdimens.xmlファイルがある)に配置します。

詳細については、ドキュメントをご覧ください。

于 2012-08-28T22:17:52.517 に答える