如何在android中制作ios拨号盘界面

时间:2015-02-22 11:35:50

标签: android android-layout android-xml android-button

我想在android中使用圆形按钮制作一个拨号盘,就像IOS 7一样。任何人都可以帮我制作一个支持android的不同手机屏幕的圆形按钮拨号盘界面。

1 个答案:

答案 0 :(得分:0)

如果我想为该拨号盘编写代码,则需要花费很多时间。因此,我写了一些可能对您有所帮助的步骤以及可以向您展示方式的代码的某些部分:

  1. 制作2个可绘制的形状文件。 2个椭圆形按钮。 (默认为1,按下状态为另一个)

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="oval">
    
        <stroke android:width="1dp" android:color="COLOR" />
    
    </shape>
    
  2. 为您的按钮创建一个选择器可绘制文件,当用户按下按钮时,该文件将改变背景。

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
           <item android:state_pressed="true"
               android:drawable="@drawable/drawable2" />
    
           <item android:drawable="@drawable/drawable1" />
    
    </selector>
    
  3. 为您的键盘制作样式。将选择器设置为按钮的背景。

    <style name="keypad">
    
        <item name="android:layout_margin">4dp</item>
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:layout_weight">1</item>
        <item name="android:textSize">@dimen/text_size_large</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textColor">@color/black</item>
        <item name="android:background">@drawable/btn_blue</item>
    
    </style>
    
  4. dimens文件夹中为不同的屏幕尺寸提供不同的尺寸,然后将其用作按钮的大小。

  5. enter image description here

    1. 制作Linear-layout并在该布局中添加4或5个其他Linear-layouts

      <LinearLayout
          style="@style/linearLayouts.vertical"
          android:id="@+id/layout_keypad"
          android:layout_marginBottom="4dp">
      
          <LinearLayout
              style="@style/linearLayouts.horizontal"
              android:id="@+id/bar_1to3">
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_1"
                  android:id="@+id/btn_1"
                  android:layout_weight="1"/>
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_2"
                  android:id="@+id/btn_2"/>
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_3"
                  android:id="@+id/btn_3"/>
      
          </LinearLayout>
      
          <LinearLayout
              style="@style/linearLayouts.horizontal"
              android:id="@+id/bar_4to6">
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_4"
                  android:id="@+id/btn_4"/>
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_5"
                  android:id="@+id/btn_5"/>
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_6"
                  android:id="@+id/btn_6"/>
      
          </LinearLayout>
      
          <LinearLayout
              style="@style/linearLayouts.horizontal"
              android:id="@+id/bar_7to9">
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_7"
                  android:id="@+id/btn_7"/>
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_8"
                  android:id="@+id/btn_8"/>
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_9"
                  android:id="@+id/btn_9"/>
      
          </LinearLayout>
      
          <LinearLayout
              style="@style/linearLayouts.horizontal"
              android:id="@+id/bar_0toH">
      
      
              <Button
                  style="@style/keypad"
                  android:text="*"
                  android:id="@+id/btn_s"/>
      
              <Button
                  style="@style/keypad"
                  android:text="@string/btn_0"
                  android:id="@+id/btn_0"/>
      
              <Button
                  style="@style/keypad"
                  android:text="#"
                  android:id="@+id/btn_h"/>
      
          </LinearLayout>
      </LinearLayout>
      
    2. 这是输出:

      enter image description here

      我没有为我的按钮大小提供尺寸。所以这些按钮不是圆形的。我希望这能为你指路。别忘了投票;)