- 浏览: 123038 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
kingbinchow:
android:tonghuaguanxin 写道请问,这个属 ...
修改EditText的光标颜色 -
tonghuaguanxin:
请问,这个属性在代码中如何设置?
修改EditText的光标颜色
FloatButton fb = new FloatButton(this); fb.show(); fb.setClickActionListener(new ClickActionListener(){ @Override public void onClickAction() { }});
import android.content.Context; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; import android.view.ViewConfiguration; import android.view.WindowManager; import android.widget.ImageView; import com.pingan.haoche.app.R; /** * * float button in window * <p> * Need implement ClickActionListener for response click event * <p> * @author Kingz 2015-4-14 * */ public class FloatButton implements OnTouchListener { private Context mContext; private ImageView mFloatContent; private boolean mIsShowing; private int mImageWidth; private int mImageHeight; private WindowManager mWindowManager; private WindowManager.LayoutParams mWinManagerParams; private int touchSlop; private ClickActionListener clickActionListener; public FloatButton(Context context) { mContext = context; mWindowManager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); touchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); creatFloatView(); createParams(); } private void creatFloatView() { mFloatContent = new ImageView(mContext); Drawable fudr = mContext.getResources().getDrawable( R.drawable.floatbutton); mImageWidth = (int) (fudr.getIntrinsicWidth()); mImageHeight = (int) (fudr.getIntrinsicHeight()); mFloatContent.setImageDrawable(fudr); mFloatContent.setVisibility(View.INVISIBLE); mFloatContent.setOnTouchListener(this); mFloatContent.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { clickActionListener.onClickAction(); } }); } private void createParams() { int dY = 10; mWinManagerParams = new WindowManager.LayoutParams(); mWinManagerParams.type = WindowManager.LayoutParams.TYPE_APPLICATION; mWinManagerParams.format = android.graphics.PixelFormat.TRANSPARENT; mWinManagerParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; mWinManagerParams.flags |= WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH; mWinManagerParams.gravity = Gravity.LEFT | Gravity.BOTTOM; mWinManagerParams.x = mDisWid - dY - mImageWidth; mWinManagerParams.y = dY + mImageHeight; mWinManagerParams.width = 75; mWinManagerParams.height = 75; } private float mTouchStartX; private float mTouchStartY; private float x; private float y; private boolean hasMoved = false; private int lasteventX = 0; private int lasteventY = 0; private int mContainerHeight = 0; private int mDisWid; @Override public boolean onTouch(View v, MotionEvent event) { x = event.getRawX(); y = event.getRawY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { hasMoved = false; mTouchStartX = event.getX(); mTouchStartY = event.getY(); lasteventX = (int) (x - mTouchStartX); lasteventY = (int) (y - mTouchStartY); mContainerHeight = lasteventY + mWinManagerParams.y; break; } case MotionEvent.ACTION_MOVE: { updateViewPosition(); break; } case MotionEvent.ACTION_UP: { mTouchStartX = mTouchStartY = 0; if (hasMoved) { return true; } break; } } return false; } private void updateViewPosition() { int touchX = (int) (x - mTouchStartX); int touchY = (int) (y - mTouchStartY); int step = touchSlop; if (hasMoved || Math.abs(lasteventX - touchX) > step || Math.abs(lasteventY - touchY) > step) { mWinManagerParams.x = touchX; mWinManagerParams.y = mContainerHeight - touchY; mWindowManager.updateViewLayout(mFloatContent, mWinManagerParams); hasMoved = true; lasteventX = touchX; lasteventY = touchY; } } public void show() { if (mIsShowing) { return; } mFloatContent.setVisibility(View.VISIBLE); if (mWindowManager != null && !mIsShowing) { mWindowManager.addView(mFloatContent, mWinManagerParams); mIsShowing = true; } } public interface ClickActionListener{ void onClickAction(); } public void setClickActionListener(ClickActionListener listener){ clickActionListener = listener; } }
发表评论
-
android studio debug 一直加载so文件
2017-06-24 16:15 534以前在debug时,一直很快就可以成功,但最近电脑卡,加上更新 ... -
心形vector drawable
2016-04-21 10:44 580<vector xmlns:android ... -
Gridview的第一个Item点击没反应,点击其他的item OK
2015-08-07 14:56 1617遇到一个前人挖下的大坑,各种没响应的呀,后来发现以下代码有问题 ... -
Android 常见错误处理
2015-04-03 16:03 9091.could not find "com.baid ... -
Android GirdView 最后一行显示不完整
2015-03-20 18:19 3457Android GridView 设置wrap_content ... -
import android eclipse project to android studio
2014-11-13 11:09 888Export from Eclipse 1.Update y ... -
关于android应用退出的问题(转)
2014-10-06 15:48 1205看到很多关于应用退出的问题,今天在这里为大家简单总结一下,如果 ... -
Canvas.drawTextOnPath 2D绘图
2014-07-23 17:18 676绘制文字效果,如下图 protected void onD ... -
android SAX parse xml
2014-07-17 16:22 596<?xml version="1.0&qu ... -
自定义menu,用PopupWindow截获KeyEvent
2014-07-17 15:49 1211public boolean onKeyDown(int ke ... -
Android 自动结束本层activity,回退到上一层 的intent 设置
2014-06-27 13:08 1921Intent intent = new Intent(); ... -
Android Custom View , can not use custom tag in xml file
2014-06-27 13:04 580add this line: xmlns:custom=&qu ... -
onMeasure()--典型视图度量时间
2013-02-18 15:42 958@Override protected void onMe ... -
AsynTask
2013-02-07 16:25 680... -
修改EditText的光标颜色
2013-01-29 15:02 4147在使用EditText的XML 文件中加入一个属性: and ... -
PopupWindow 的BadTokenException
2012-11-05 15:10 1280进入Activity就弹出PopupWindow 来,结果编译 ... -
android sqlite3 数据类型
2012-08-20 09:54 7069sqlite3中的数据类型 大多数的数据库引擎(到现在据我 ... -
android 入门xml布局文件--转
2012-07-10 15:58 875LinearLayout和RelativeLayout共有属性 ... -
Syntax error, static imports are only available if source level is 1.5
2012-06-05 10:20 1563Question: 工程之前一直正常运行,今早上 突然报出 S ... -
android--JNI (转)
2012-05-29 12:14 941The JNI is designed to handle s ...
相关推荐
AssistiveTouch,仿IOS AssistiveTouch实现,拿去用吧
android 可全屏拖拽按钮 类似ios assistive touch功能可全屏拖拽 解决了小米手机不显示的情况
仿苹果Assistive Touch悬浮功能写的一个小Demo
AssistiveTouch简仿
仿ios AssistiveTouch快捷键,能正常运行,还有一些小bug未修复
android仿assistivetouch悬浮窗(带功能实现),必须签名,不然权限限制会让功能实现不了。
仿AssistiveTouch,修改转发android
安卓,仿AssistiveTouch,窗口浮动按钮,可拖动,点击弹出菜单
一行代码快速集成Assistive Touch功能: [HMYAssistiveControl createOnMainWindowWithCollapsedView:view andExpandedView:nil andBlockClickData:^(CGPoint pointTouch){ NSLog(@"click me is block!~ ha ha ha,...
XFAssistiveTouch, 辅助按钮模拟iOS系统 AssistiveTouch 正在启动阅读此自述文件文档或相关博客了解 XFAssistiveTouch参考使用章节或示例代码在你的项目中使用 XFAssistiveTouch通信安装pod 'XFA
实现了全局浮动的button按钮,可以跟随手指一动,类似于iOS的AssistiveTouch效果,代码很简单没加注释,喜欢的下载看看
仿iPhone的AssistiveTouch的悬浮辅助球工具
iOS中使用的类似AssistiveTouch的全局浮动按钮,可全局添加,使用简单的小框架
继承于UIWindow类的一个小悬浮窗,可以任意拖拽,并停靠在屏幕的边缘处
类似于苹果AssistiveTouch.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
AssistiveTouch - 配合Android手机沉浸式隐藏虚拟按键后快捷操作 (Nexus5屏幕变大了)。
很不错的悬浮窗口 小例子,点击小图标支持扩张和收缩。
android 类似Iphone AssistiveTouch的手势开源代码,找了很久的,共享了。
类似Iphone AssistiveTouch的快捷键按钮
一个类似 AssistiveTouch 简单的拖动视图动画 ,吸附屏幕边缘, 方便易用, 来和大家分享一下,不喜勿喷