Flex中如何利用setStyle()函数,实现showEffect和hideEffect效果

 
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white"
  6.         creationComplete="init();">
  7.  
  8.     <mx:Script>
  9.         <![CDATA[
  10.             import mx.effects.easing.*;
  11.  
  12.             private function init():void {
  13.                 img.setStyle("showEffect", rotate);
  14.                 img.setStyle("hideEffect", fade);
  15.             }
  16.         ]]>
  17.     </mx:Script>
  18.  
  19.     <mx:Fade id="fade" />
  20.     <mx:Rotate id="rotate"
  21.             angleFrom="-180"
  22.             angleTo="0"
  23.             easingFunction="Elastic.easeInOut"
  24.             duration="2000" />
  25.  
  26.     <mx:ApplicationControlBar dock="true">
  27.         <mx:Form styleName="plain">
  28.             <mx:FormItem label="visible:">
  29.                 <mx:ToggleButtonBar id="toggleButtonBar"
  30.                         itemClick="img.visible = event.item.data;">
  31.                     <mx:dataProvider>
  32.                         <mx:Array>
  33.                             <mx:Object label="Show" data="true" />
  34.                             <mx:Object label="Hide" data="false" />
  35.                         </mx:Array>
  36.                     </mx:dataProvider>
  37.                 </mx:ToggleButtonBar>
  38.             </mx:FormItem>
  39.         </mx:Form>
  40.     </mx:ApplicationControlBar>
  41.  
  42.     <mx:Image id="img"
  43.             source="@Embed('assets/flashplayer_icon.jpg')"
  44.             width="100"
  45.             height="100" />
  46.  
  47. </mx:Application>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 的 RoundImageView 是一个自定义 View,可以根据需求自己实现鼠标进入时和退出时显示不同效果的功能。 以下是一个实现鼠标进入时和退出时显示不同效果的 RoundImageView 的示例代码: ``` public class RoundImageView extends ImageView { private int mBorderColor = Color.RED; private int mBorderWidth = 0; private int mRadius = 0; public RoundImageView(Context context) { super(context); } public RoundImageView(Context context, AttributeSet attrs) { super(context, attrs); initAttrs(context, attrs); } public RoundImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initAttrs(context, attrs); } private void initAttrs(Context context, AttributeSet attrs) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RoundImageView); mBorderColor = a.getColor(R.styleable.RoundImageView_borderColor, Color.RED); mBorderWidth = a.getDimensionPixelSize(R.styleable.RoundImageView_borderWidth, 0); mRadius = a.getDimensionPixelSize(R.styleable.RoundImageView_radius, 0); a.recycle(); } @Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (drawable == null) { return; } if (getWidth() == 0 || getHeight() == 0) { return; } Bitmap b = ((BitmapDrawable) drawable).getBitmap(); if (b == null) { return; } Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true); int w = getWidth(), h = getHeight(); Bitmap roundBitmap = getCroppedBitmap(bitmap, w, h); canvas.drawBitmap(roundBitmap, 0, 0, null); if (mBorderWidth > 0) { Paint paint = new Paint(); paint.setColor(mBorderColor); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(mBorderWidth); canvas.drawCircle(w / 2, h / 2, mRadius - mBorderWidth / 2, paint); } } private Bitmap getCroppedBitmap(Bitmap bmp, int radius, int border) { Bitmap sbmp; if (bmp.getWidth() != radius || bmp.getHeight() != radius) { float smallest = Math.min(bmp.getWidth(), bmp.getHeight()); float factor = smallest / radius; sbmp = Bitmap.createScaledBitmap(bmp, (int) (bmp.getWidth() / factor), (int) (bmp.getHeight() / factor), false); } else { sbmp = bmp; } Bitmap output = Bitmap.createBitmap(radius, radius, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(output); int color = Color.WHITE; Paint paint = new Paint(); Rect rect = new Rect(0, 0, radius, radius); paint.setAntiAlias(true); paint.setColor(color); canvas.drawARGB(0, 0, 0, 0); canvas.drawCircle(radius / 2, radius / 2, mRadius, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(sbmp, rect, rect, paint); return output; } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // 鼠标进入时的处理 mBorderColor = Color.BLUE; mBorderWidth = 10; invalidate(); break; case MotionEvent.ACTION_UP: // 鼠标退出时的处理 mBorderColor = Color.RED; mBorderWidth = 0; invalidate(); break; default: break; } return super.onTouchEvent(event); } } ``` 在 RoundImageView ,我们重写了 onTouchEvent 方法,当鼠标进入时修改了边框的颜色和宽度,在鼠标退出时则恢复为原来的颜色和宽度。这样就实现了鼠标进入时和退出时显示不同效果的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值