【问题标题】:Drawing a variable length line in a LinearLayout在 LinearLayout 中绘制可变长度线
【发布时间】:2011-08-01 18:54:50
【问题描述】:

我正在做一个增强现实应用程序,其中主屏幕包含多个显示在相机预览上的 ARViews。这些 ARView 是扩展的 LinearLayout,内部带有 TextView。 这些视图绘制在屏幕上不同的垂直位置。现在我想从每个视图的中间到屏幕高度的中间画一条垂直线,如下面的截图所示。

当然,当用户移动设备时视图会移动,因此线的长度会发生变化。

如何将其添加到我的 ARView?

public class ARView extends LinearLayout
{    
    public float azimuth = 0;        
    public float inclination = 0;
    public Location location;
    public int position;

    TextView title, type, distance;

    public int X, Y;

    public ARView(final Context context, int ind)
    {        
        super(context);  
        getLayoutInflater().inflate(R.layout.ar_item, this ,true);
        LayoutInflater inflater = (LayoutInflater)   getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        inflater.inflate(R.layout.ar_item, null);

        title = (TextView) findViewById(R.id.title);
        type = (TextView) findViewById(R.id.type);
        distance = (TextView) findViewById(R.id.distance);
    }
}

ar_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ar_item" android:layout_width="202dp"
    android:layout_height="62dp" android:background="@drawable/bg_item_ar"
    android:clickable="true">

    <LinearLayout android:id="@+id/container"
        android:orientation="vertical" android:layout_width="164dp"
        android:layout_height="fill_parent" android:paddingBottom="5dp"
        android:paddingLeft="8dp" android:paddingTop="5dp"
        android:paddingRight="6dp" android:clickable="true">

        <TextView android:id="@+id/title" android:layout_width="fill_parent"
            android:layout_height="18dp" android:textSize="13sp"
            android:textColor="#FFFFFF" android:textStyle="bold"/>

        <TextView android:id="@+id/type" android:layout_width="fill_parent"
            android:layout_height="18dp" android:textSize="13sp"
            android:textColor="#FFFFFF"/>

        <TextView android:id="@+id/distance"
            android:layout_width="fill_parent" android:layout_height="16dp"
            android:textSize="12sp" android:textColor="#C6C6C6" />

    </LinearLayout>

</LinearLayout>

【问题讨论】:

    标签: android android-linearlayout shape


    【解决方案1】:

    您应该创建一个 ViewGroup,其中包含所有应该覆盖整个宽度和高度的视图。现在您可以将另一个视图添加到视图组中,该视图应作为自定义绘图的背景。您还可以创建一个新的相对布局以及其中的所有额外内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2012-01-28
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多