在Android中设计温度计

时间:2014-08-12 12:49:57

标签: android xml temperature meter

已尝试过多种方法在Android中设计温度计,但它们都很糟糕。

最后一项工作是使用垂直进度加上circle.xml:

抽拉\ verticalprogressbar.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:id="@android:id/background">
     <shape>
     </shape>
 </item>
 <item android:id="@android:id/progress">
     <clip
         android:clipOrientation="vertical"
         android:gravity="bottom">
         <shape>
             <corners android:radius="50dip"/>
             <solid android:color="#FF0000"/>
             <stroke
                 android:width="1dp"
                 android:color="#000000" />
         </shape>
         <shape>
             <solid android:color="#FF0000"/>
         </shape>
     </clip>
 </item>
</layer-list>

抽拉\ circle.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
    <solid android:color="#FF0000" />
</shape>

布局\ activity_main.xml中:

   <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ProgressBar
            android:id="@+id/tempGauge"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="10dp"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_gravity="center"
            android:max="50"
            android:progress="25"
            android:progressDrawable="@drawable/verticalprogressbar" />

        <View
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_gravity="bottom"
            android:layout_marginBottom="10dp"
            android:background="@drawable/circle" />

    </LinearLayout>

在此背景下绘制真正类似水银的仪表的最佳方法是: http://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Thermometer_CF.svg/345px-Thermometer_CF.svg.png

1 个答案:

答案 0 :(得分:0)

将布局从线性更改为相对:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.myview.MainActivity" >

    <View
        android:id="@+id/view1"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignBottom="@+id/tempGauge"
        android:layout_marginLeft="0dp"
        android:background="@drawable/circle" />

    <ProgressBar
        android:id="@+id/tempGauge"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="10dp"
        android:layout_height="fill_parent"
        android:layout_alignRight="@+id/view1"
        android:layout_marginRight="10dp"
        android:max="50"
        android:progress="25"
        android:progressDrawable="@drawable/verticalprogressbar" />

</RelativeLayout>
虽然它并不完美,但最终看起来更好。 现在我需要为它添加比例。