我已经尝试了自定义视图并将图像成功倾斜到45度,但我希望以某个角度倾斜整个孩子的布局,这样无论我在子布局中添加什么都会自动平铺..供参考请参考看一下附图
即使我已经尝试过此代码,但它也无法帮助
public class CustomLinear extends LinearLayout{
private Matrix mForward = new Matrix();
private Matrix mReverse = new Matrix();
private float[] mTemp = new float[2];
public CustomLinear(Context context) {
super(context);
}
public CustomLinear(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void dispatchDraw(Canvas canvas) {
canvas.rotate(75, getWidth() / 2, getHeight() / 2);
mForward = canvas.getMatrix();
mForward.invert(mReverse);
canvas.save();
canvas.setMatrix(mForward); // This is the matrix we need to use for
// proper positioning of touch events
super.dispatchDraw(canvas);
canvas.restore();
invalidate();
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
event.setLocation(getWidth() - event.getX(), getHeight() - event.getY());
return super.dispatchTouchEvent(event);
}
}
答案 0 :(得分:1)
我可以使用旋转动画。您可以在On_create中使用 0持续时间在整个子布局上应用动画。
这是动画代码
<?xml version="1.0" encoding="utf-8"?>
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="-90"
android:pivotX="50%"
android:pivotY="50%"
android:duration="0"
android:fillAfter="true">
</rotate>
您可以根据需要设置旋转角度。
然后在Activity的onCreate中使用给定的代码,
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.myscreen);
Animation rotate_anim = AnimationUtils.loadAnimation(this, R.anim.rotation);
LayoutAnimationController anim_controller = new LayoutAnimationController(rotate_anim, 0);
FrameLayout layout = (FrameLayout)findViewById(R.id.MyScreen_ContentLayout);
layout.setLayoutAnimation(anim_controller);
}
答案 1 :(得分:1)
制作自定义(倾斜/旋转)xml视图,并在主视图中调用它。
另外,请查看以下链接,这可能会对您有所帮助。
http://mindfreakconcepts.blogspot.com/2013/03/how-to-rotate-listview-items-in-android.html
答案 2 :(得分:0)
我可能错了,但根据我的理解,你必须使用动画来获得你想要的效果而不是画画。有一个类似的帖子,here可能值得一试。