我已经进行了很多搜索,但找不到解决我的问题的方法。我不能使用android:rotation
因为我希望这个应用程序与 Android API 11 版本兼容。
我的问题与此类似:在 Android 中旋转视图 https://stackoverflow.com/questions/1930963/rotating-a-view-in-android
我已经这样做了:
@Override
public void draw(Canvas canvas) {
canvas.save();
Drawable d = getDrawable();
canvas.rotate(-10, d.getIntrinsicWidth() / 2, d.getIntrinsicHeight() / 2);
super.draw(canvas);
canvas.restore();
}
ImageView 是RelativeLayout 的一部分,我在其中放置图像和一些文本。
但图像的边缘被裁剪了。我怎样才能避免这种情况?
您只需添加:
android:clipChildren="false"
给家长ViewGroup
.
例如:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:layout_width="300dp"
android:layout_height="300dp"
android:clipChildren="false">
<com.yourcompany.views.RotateImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@android:color/white"
android:src="@drawable/ic_launcher" />
</FrameLayout>
旋转图像视图:
public class RotateImageView extends ImageView {
@Override
public void draw(Canvas canvas) {
canvas.save();
int height = canvas.getHeight();
int width = canvas.getWidth();
canvas.rotate(45, height / 2, width / 2);
super.draw(canvas);
canvas.restore();
}
}
在 API Level 11 之前提供了一个干净的解决方案
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)