`
iaiai
  • 浏览: 2196868 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

不规则图形按钮非透明区的点击

 
阅读更多
/**
 * 不规则"图形按钮控件"
 *
 */
public class TrapezoidImageButton extends ImageButton {

    public TrapezoidImageButton(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    }

    public TrapezoidImageButton(Context context, AttributeSet attrs) {
    super(context, attrs);
    }

    public TrapezoidImageButton(Context context) {
    super(context);
    }
    
    @Override
    public boolean onTouchEvent(MotionEvent event) {
    if (isTouchPointInView(event.getX(),event.getY())||
        event.getAction() != MotionEvent.ACTION_DOWN){
        return super.onTouchEvent(event);
    }else{
        return false;
    }
    }

    protected boolean isTouchPointInView(float localX, float localY){
    Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    draw(canvas);
    int x = (int)localX;
    int y = (int)localY;
    if (x < 0 || x >= getWidth())
        return false;
    if (y < 0 || y >= getHeight())
        return false;
    int pixel = bitmap.getPixel(x,y);
    if ((pixel&0xff000000) != 0){ //点在非透明区
        return true;
    }else{
        return false;
    }
    }
}
分享到:
评论

相关推荐

    不规则透明按钮

    在IT界,尤其是在UI设计和软件开发中,创建具有独特形状和透明度的不规则按钮是一种常见的需求,它能够提供更美观且个性化的用户界面。本文将深入探讨如何通过重载`button`类来实现这样的功能,特别是如何利用PNG...

    2dx3.0不规则按钮

    2. **不规则形状绘制**:在`draw()`函数中,开发者可能会使用`cc::DrawNode`或者`glDrawArrays()`等图形绘制函数来绘制非矩形的按钮形状。 3. **碰撞检测**:为了响应用户的触摸事件,`DJShapeButton`可能实现了...

    [最新] MFC 不规则按钮的实现, 按钮的形状, 根据图片的形状来绘制, 并且重叠的部分, 透明显示_解决了因为GetPix函数, 导致的性能慢的问题

    在本文中,我们将深入探讨如何在MFC(Microsoft Foundation Class)框架中实现不规则形状的按钮,以及如何根据图片的形状来绘制按钮,并处理重叠部分的透明显示。此外,我们还将解决使用`GetPix`函数导致的性能问题...

    WPF不规则形状按钮

    在Windows Presentation Foundation(WPF)中,创建不规则形状的按钮是一种高级的界面设计技术,它允许开发者超越传统的矩形控件,为用户提供更具吸引力和个性化的交互体验。WPF的图形模型基于矢量图形,这使得我们...

    IOS 不规则按钮实现方法

    "IOS 不规则按钮实现方法"主要涉及到自定义按钮和图形绘制技术,通过给定的文件名可以推测出这是一种通过Category(分类)扩展UIImage和UIButton类来实现的方法。接下来,我们将深入探讨这一实现过程。 首先,...

    vc++自绘不规则按钮

    对于“不规则按钮”,我们可以推断这是指形状或边缘非标准、非矩形的按钮。这可能包括圆形、椭圆形、多边形或者其他复杂形状的按钮。实现这样的效果,开发者需要精确地控制绘图的路径和填充区域,这通常涉及使用`...

    漂亮的透明不规则按钮!

    首先,"不规则按钮"通常指的是那些形状非传统矩形,具有独特设计感的按钮。这样的按钮设计可以使用户界面更具个性化,吸引用户的注意力。在Windows或Web应用中,可以通过自定义绘图或利用图形库(如SVG)来实现不...

    利用VC制作各种不规则按钮

    不规则按钮,顾名思义,是指那些并非标准矩形形状的控件,它们可能拥有复杂的轮廓或者自定义的图形样式。在Windows应用程序开发中,这样的设计可以提升用户体验,使界面更加吸引人。 制作不规则按钮主要涉及以下几...

    mfc实现自给按钮,透明按钮

    本篇文章将探讨如何利用MFC的自绘功能(Owner Draw)创建一个透明或XP风格的CXPButton类,以此来定制按钮的样式。 一、准备工作 自定义按钮的第一步是设计不同状态下的按钮外观,包括Normal(正常)、Over(鼠标...

    不规则的图片按钮(重写按钮的形貌)

    此外,为了实现按钮的不规则形状,我们可能需要利用矢量图形(如SVG)或者通过CSS3的border-radius属性来创建圆角、椭圆甚至更复杂的形状。在某些高级框架中,还可以利用图形渲染API绘制自由形状,如贝塞尔曲线,以...

    根据图片实现不规则Button

    3. **处理消息**: 除了OnPaint(),可能还需要重写其他消息处理函数,如OnNcCalcSize()和OnNcPaint(),以确保非客户区(例如边框和标题)也按照不规则形状调整。同时,处理鼠标和键盘事件时,也需要根据不规则区域...

    PictureRegionButton(不规则按钮)

    《PictureRegionButton:打造个性化的不规则形状按钮》 在UI设计中,创新与个性化是提升用户体验的关键要素之一。传统的矩形按钮虽然简洁易用,但有时无法满足设计师们对于独特视觉效果的需求。这时,...

    不规则按钮.rar

    在这个函数中,你需要使用GDI(Graphics Device Interface)或GDI+图形库进行绘图,绘制出不规则按钮的形状和样式。这包括但不限于使用MoveTo()、LineTo()函数绘制线条,以及使用Ellipse()、Polygon()等函数绘制更...

    pb 使窗口的图片透明化 不规则窗口

    你可以根据需要创建一个形状(例如,通过描画路径或填充不规则图形),然后将这个形状设置为窗口的区域。 4. **使用TransWindow.pbw**:此文件可能是保存了透明窗口相关设置的窗口工作区文件。打开该文件,我们可以...

    测试按钮_不规则按钮_

    在C#编程中,创建一个不规则形状的按钮可以为用户界面增添独特的视觉效果和交互体验。这种技术通常用于设计更加吸引人的软件或应用程序。在本篇内容中,我们将深入探讨如何利用C#来实现“不规则按钮”的制作,重点...

    不规则的形状按钮

    在计算机图形学和软件开发领域,创建不规则形状的按钮是一项具有挑战性的任务,尤其是在使用老式的编程语言如Visual C++(简称VC)时。不规则形状按钮的设计可以使用户界面更具创新性和吸引力,打破传统的矩形布局,...

    CButtonST_demo特殊背景按钮,透明按钮,可变位图按钮,异形按钮

    2. **透明按钮**:`CButtonST` 支持透明效果,这意味着按钮可以拥有不规则的形状或部分透明,允许背景图像或颜色透过按钮,增加视觉层次感。透明度可以通过设置特定的属性来控制,使得按钮更加灵活多样。 3. **可...

    不规则按钮

    7. `UpdateLayeredWindow()`:对于半透明效果,我们可以使用此函数更新窗口的像素信息,实现不规则按钮的透明效果。 在VC++环境中,你可以创建一个自定义的窗口类,并重写`WndProc`函数来处理消息。在`WndProc`中,...

    超牛气的VB多不规则按钮控件及实例.zip_noon6rz_超牛气的VB多不规则按钮控件及实例

    标题“超牛气的VB多不规则按钮控件及实例”揭示了一个特殊的资源,它提供了用于VB应用的自定义按钮控件,这些控件能够展现出非传统的形状和样式,从而为用户带来更吸引人的体验。 描述中提到的“相关的实例”意味着...

Global site tag (gtag.js) - Google Analytics