1

このgridviewhttp://developer.android.com/resources/tutorials/views/hello-gridview.htmlの例を使用しており、画像が少なく、片隅に回転ボタンがあります。画像をクリックしてから、回転ボタンをクリックしてその画像を回転させたいのですが、その方法がわかりません。

誰か考えがありますか?

4

1 に答える 1

1

回転させたい画像を追跡している場合は、getView内でsetImageMatrix()を使用して画像の回転を行うことができます。このようなもの:

HashMap<Integer, Matrix> mImageTransforms = new HashMap<Integer,Matrix>();
Matrix mIdentityMatrix = new Matrix();

// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }

    Matrix m = mImageTransforms.get(position);
    if ( null == m ) {
        m = mIdentityMatrix;
    }
    imageView.setImageMatrix(m);
    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}

void setImageRotation(int position, int degrees) {
    Matrix m = mImageTransforms.remove(position);        
    if ( degrees != 0 ) {
        if ( null == m ) m = new Matrix();
        m.setRotate(degrees);
        mImageTransforms.put(position, m);
    }
    notifyDataSetChanged();
}

注意すべきことが1つあります。タッチモードでは、リストとグリッド自体に選択機能はありませんが、チェックすることはできます。チェックされた状態を表示するグリッドビューを取得するのは少し注意が必要です。Honeypadチュートリアルでは、リストビュー内でチェックされたビューを使用する方法が示されていると便利です。

于 2012-05-02T20:36:07.463 に答える