我在横向模式中有一个活动。里面有一个Custom-Title-View对齐如下:
是否可以将横向模式和'假'这一个视图转换为纵向模式,如下所示:
我试图覆盖我的自定义TitleView并将这样的内容添加到draw(Canvas)
public class VerticalTitle extends Title{
public draw(Canvas){
canvas.save();
canvas.rotate(getWidth() / 2, getHeight() / 2);
// i tryed many translations, but get none to work
canvas.translate(0, getHeight());
super.draw(canvas);
canvas.restore()
}
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
super.onMeasure(heightMeasureSpec, widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
}
}
如果它有任何兴趣,TitleBar从RelativeLayout延伸并具有固定的高度和fill_parent宽度
View中的setRotate参数不是一个选项,因为该应用应与2.2保持兼容。
答案 0 :(得分:1)
我从来没有这样做,但是我在这里找到了另外两个答案,表明你可以做到这一点。
第一个涉及扩展TextView类,并且是here。既然你想要做一个完整的视图,我认为下一个答案更适合你的情况。
另一个答案是使用旋转来创建动画来处理它。答案是here。
答案 1 :(得分:1)
您必须扩展文本视图并构建自定义垂直TextView首先请参阅这两个链接以获取更多详细信息
然后在你的Layout-land中你可以使用这个Xml文件进行布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.yourpackage.CustomVerticalTextView
android:layout_width="42dp"
android:layout_height="fill_parent"
android:text="@string/hello"
android:background="#0000FF" />
</LinearLayout>
如果要旋转布局而不是将其所有子项旋转90度使用 LayoutAnimationController
有关详细信息,请参阅此SO thread