我使用gridview http://developer.android.com/resources/tutorials/views/hello-gridview.html的這個例子,只有較少的圖像和一個角落的旋轉按鈕。我想單擊圖像,然後單擊旋轉按鈕以旋轉該圖像,但我找不到如何操作。在gridview中旋轉圖像
任何人有什麼想法?
我使用gridview http://developer.android.com/resources/tutorials/views/hello-gridview.html的這個例子,只有較少的圖像和一個角落的旋轉按鈕。我想單擊圖像,然後單擊旋轉按鈕以旋轉該圖像,但我找不到如何操作。在gridview中旋轉圖像
任何人有什麼想法?
如果您跟蹤要旋轉的圖像,可以使用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();
}
有一點需要注意。在觸摸模式列表和網格中沒有選擇本身,但可以檢查它們。獲取網格視圖來顯示選中的狀態有點棘手,也就是說Honeypad Tutorial顯示瞭如何在列表視圖中使用選中的視圖,這可能會有所幫助。
好吧讓我看看我是否理解你的代碼,應該用旋轉按鈕調用void setImageRotation(int position,int degrees)? –
好吧它工作,謝謝! –
太棒了!很高興有幫助! – dagalpin
您是否嘗試過使用'Animation'對象旋轉'View'? – slayton
你想旋轉圖像永久?換句話說,你想讓它影響圖像文件嗎? –
@slayton不,我沒有嘗試動畫會嘗試那一個。 –