【问题标题】:Rounded image button android圆形图像按钮android
【发布时间】:2014-01-28 04:53:45
【问题描述】:

我有一个像图片中的图像按钮。我希望它周围的红色空间(它将是透明的,只是用红色来标识空间)将不可点击。可能吗 ?我尝试了不同的代码,例如通过 xml 或一些圆形的 imageview 代码,但没有任何帮助..

【问题讨论】:

标签: android android-layout android-imageview


【解决方案1】:

无需计算任何东西,您唯一需要做的就是在按钮模板 xml(可绘制对象)中定义 imageButton 的形状。

所以在你的 UI 布局 xml 文件中,ImageButton 可能是这样描述的

<ImageButton
            android:id="@+id/button"
            android:layout_width="300dp" 
            android:layout_height="300dp" 
            android:src="@drawable/yourIcon" 
            android:background="@drawable/button" <!-- PATTERN!! -->
            android:contentDescription="obrazek"
            android:padding="5dp"
            android:layout_margin="1dp"
            android:onClick="onClick"/>

并在你的模式文件中声明shape="oval",即像这样

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval">
    <gradient
        android:startColor="#50d050"
        android:endColor="#008000" 
        android:angle="270"/>

    <stroke 
        android:width="1px"
        android:color="#000000"/>

</shape>

再简单不过了。 :D

【讨论】:

  • @arun 很奇怪,它对我有用... :( 定义了 adnroid:shape="oval" 的圆形按钮的角没有触发 onClick 方法,抱歉我帮不上忙 :(
  • @arun 我用更大的按钮尝试过这个,它看起来,当我触摸按钮边框附近的屏幕时,但在它之外,它仍然触发 onClick 事件....看来唯一合理的解决方案是使用用户 18446744073709551615 提出的计算
【解决方案2】:

您可以:

  1. 获取点击坐标,测量距中心的距离,忽略距中心距离大于半径的点击
  2. 通过几个可点击的方形区域来近似圆形,或者,可能在原始方形按钮上放置几个点击被忽略的可点击视图,从而覆盖不应点击的区域。

【讨论】:

  • 为什么要测量任何东西,当您可以在可绘制图案 xml 文件中定义按钮的形状时?它只是 xml 中的一行代码:&lt;shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"&gt; 从现在开始,如果您按下任何角落,您的按钮将不会做出反应
猜你喜欢
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多