我使用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不,我没有尝试动画会尝试那一个。 –