-1

已经尝试了很多方法来在 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

4

1 回答 1

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>

虽然不完美,但总算好看多了。现在我需要为其添加比例。

于 2014-08-14T09:07:56.237 回答