【问题标题】:how to make a ios dial pad interface in android如何在android中制作一个ios拨号盘界面
【发布时间】:2015-04-23 19:21:23
【问题描述】:

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

【问题讨论】:

  • 首先,很少有人监视这个标签会知道“像IOS 7一样的拨号盘”是什么意思。在某处上传屏幕截图并从您的问题链接到它。其次,请说明您尝试过的方法以及遇到的具体问题。
  • 这是可以看到拨号盘的链接iphonehacks.com/2013/06/8-ios-7-features.html
  • 我做了这个布局,但我面临的问题是不同的手机屏幕尺寸。布局不会在移动设备中自动调整。我也使用了“权重”,但是使用这个权重按钮的形状会改变。
  • 在这里您可以找到一个库,其中包含一个带有 ios 拨号盘外观的示例:github.com/Ali-Rezaei/PadLayout

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


【解决方案1】:

如果我想为那个拨号盘编写代码,这将花费很多时间。因此,我编写了一些可能对您有所帮助的步骤以及一些可以为您指明方向的代码:

  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文件夹中为不同的屏幕尺寸提供不同的尺寸,然后将其用作按钮的尺寸。

  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>
    

这是输出:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多