【问题标题】:how to make custom view appear only horizontal?如何使自定义视图只显示水平?
【发布时间】:2011-08-26 09:30:31
【问题描述】:

您好,我有一个线性布局,我想只水平显示我的自定义视图,但它不起作用,为什么?我有这样的 xml:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_height="wrap_content"
  android:layout_width="fill_parent" 
  android:orientation="horizontal" 
  android:scrollbars="horizontal" 
  android:id="@+id/ll"
  android:background="@drawable/horizon">

但我在上面添加了自定义视图,所以也许我应该设置一些属性,但我不知道是哪个。

MyView mView = new MyView(this,i);
realViewSwitcher.addView(mView);

myView.java:

public class MyView extends View {

    public MyView(Context context, int kolki) {
        super(context);

        if (kolki == 0){
            this.setBackgroundResource(R.drawable.distspeed);
        }
        if (kolki == 1){
            this.setBackgroundResource(R.drawable.hxmdist);
        }
    }

    public void setBackgroundResource (int resid){
        super.setBackgroundResource(resid);
    } 

    public void onDraw(Canvas c){
        super.onDraw(c);
        Paint paint = new Paint();
        Path path = new Path();
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.TRANSPARENT);
        c.drawPaint(paint);
        for (int i = 50; i < 100; i++) {
               path.moveTo(i, i-1);
               path.lineTo(i, i);  
        }
        path.close();
        paint.setStrokeWidth(3);
        paint.setPathEffect(null);
        paint.setColor(Color.BLACK);
        paint.setStyle(Paint.Style.STROKE);
        c.drawPath(path, paint);
    }

}

谢谢

我的意思是像愤怒的小鸟一样,当你启动应用程序时它会翻转到水平模式并且在游戏运行时不会翻转,我需要完全相同的东西。它应该在 Activity 运行时保持横向模式

【问题讨论】:

    标签: android


    【解决方案1】:

    如果您想要横向模式的额外布局 XML 文件,您可以将这些布局放在 res/layout-land-文件夹中,请参阅 here

    【讨论】:

    • 它不允许编译程序 [2011-05-16 14:12:28 - TabbedHorizo​​ntalPagerDemo] (跳过索引文件'C:\Users\Bladeszasza\workspace\TabbedHorizo​​ntalPagerDemo\res\drawable-hdpi \Thumbs.db') [2011-05-16 14:12:28 - TabbedHorizo​​ntalPagerDemo] 资源目录名称无效:C:\Users\Bladeszasza\workspace\TabbedHorizo​​ntalPagerDemo\res/layout_land
    • 您知道“/”-Shlash 是路径分隔符吗?所以它是“res”文件夹中的“layout-land”文件夹。此外,当您使用 Windows 资源管理器预览图片时,会创建 Thumbs.db。此文件可以删除。
    • 我不明白你的意思抱歉
    • 将设备在横向模式下应显示的布局放入(已经存在的)“res”文件夹中的“Layout-Land”文件夹中。
    • 我这样做了,它显示了同样的错误,但我需要在 res 文件夹中创建 layout_land 文件夹,因为它不包含它。
    【解决方案2】:

    你的意思是你需要将方向限制为水平吗?

    How do you create an app that only allows horizontal orientation?

    在应用程序的清单文件中,在应用程序标签内,输入android:screenOrientation="landscape"

    【讨论】:

    • 但它不起作用,如果我创建 layout_land 文件夹,它不会编译应用程序...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多