Android代码片段有哪些?Android代码片段详情介绍
来源:CSDN 时间:2023-01-04 08:05:58
(资料图片)
收集代码片段,需要的时候粘贴复制即可,避免重复的无用功
1、自定义Toast
private WindowManager.LayoutParams params;public void showToast(String location) {// View触摸监听器params = new WindowManager.LayoutParams();params.height = WindowManager.LayoutParams.WRAP_CONTENT;params.width = WindowManager.LayoutParams.WRAP_CONTENT;// 没有焦点params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;// 不让锁屏params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;// 半透明params.format = PixelFormat.TRANSLUCENT;// 电话优先级的UIparams.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;view = LinearLayout.inflate(this, R.layout.address_show, null);int which = SystemConfig.getSystemConfig(AddressService.this).getAddressStyle();view.setBackgroundResource(call_image[which]);TextView text = (TextView) view.findViewById(R.id.address_show);text.setText(location);wm.addView(view, params);xml文件
android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" > android:id="@+id/address_show" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="2dp" android:drawableLeft="@android:drawable/ic_menu_call" android:drawableStart="@android:drawable/ic_menu_call" android:gravity="center" android:textSize="20sp" />
2、可移动的Toast窗体
view.setOnTouchListener(new OnTouchListener() {public boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:startX = (int) event.getRawX();startY = (int) event.getRawY();Log.i(TAG, "开始位置 :" + startX + "," + startY);break;case MotionEvent.ACTION_MOVE:int newX = (int) event.getRawX();int newY = (int) event.getRawY();Log.i(TAG, "新的位置 :" + newX + "," + newY);int dX = newX - startX;int dY = newY - startY;Log.i(TAG, "偏移量:" + dX + "," + dY);params.x = params.x + dX;params.y = params.y + dY;// 更新UIwm.updateViewLayout(view, params);// 重新初始化起点坐标的位置startX = (int) event.getRawX();startY = (int) event.getRawY();break;case MotionEvent.ACTION_UP:break;default:break;}// 事件处理完成,停止父控件的响应事件return false;}});
3、跟随手指可移动的控件
protected static final String TAG = "MainActivity";private int startX;private int startY;private Button view;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);view = (Button) findViewById(R.id.view);view.setOnTouchListener(new OnTouchListener() {@SuppressLint("NewApi")public boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:startX = (int) event.getRawX();startY = (int) event.getRawY();Log.i(TAG, "开始位置 :" + startX + "," + startY);break;case MotionEvent.ACTION_MOVE:int newX = (int) event.getRawX();int newY = (int) event.getRawY();Log.i(TAG, "新的位置 :" + newX + "," + newY);int dX = newX - startX;int dY = newY - startY;Log.i(TAG, "偏移量:" + dX + "," + dY);// 更新UIint l = view.getLeft() + dX;int t = view.getTop() + dY;int r = view.getRight() + dX;int b = view.getBottom() + dY;view.layout(l, t, r, b);view.invalidate();// 重新初始化起点坐标的位置startX = (int) event.getRawX();startY = (int) event.getRawY();break;case MotionEvent.ACTION_UP:break;default:break;}// 事件处理完成,停止父控件的响应事件return false;}});}
4、手势识别器,实现Activity之间的切换
/** * @desc 手势识别器,实现多个功能之间的滑动切换* @date 2014年11月11日 下午3:02:53 * @user X1ong */ public abstract class BaseGuideActivity extends Activity {/** 定义手势识别器 */private GestureDetector detector;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);detector = new GestureDetector(this, new SimpleOnGestureListener() {public boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY) {// 屏蔽斜滑动if (Math.abs(e2.getRawY() - e1.getRawY()) > 100) {return true;}// 屏蔽滑动慢if (Math.abs(velocityX) < 200) {return true;} if ((e2.getRawX() - e1.getRawX()) > 200) {// 上一个页面 从左至右showBack();return true;}if ((e1.getRawX() - e2.getRawX()) > 200) {// 下一个页面 从右至左showNext();return true;}return super.onFling(e1, e2, velocityX, velocityY);}});}public abstract void showNext();public abstract void showBack();/** 使用手势识别器 */public boolean onTouchEvent(MotionEvent event) {detector.onTouchEvent(event);return super.onTouchEvent(event);}}
5、跑马灯的文字
/** 实现原理,让TextView使用都获取焦点,欺骗系统,来实现滚动的效果 * @author X1ong 实现跑马灯的文字 */public class RollTextView extends TextView {/** 此处必须实现这个三个构造函数,不然会出错的 */public RollTextView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}public RollTextView(Context context, AttributeSet attrs) {super(context, attrs);}public RollTextView(Context context) {super(context);}/** 无论有没有焦点,都返回有焦点状态 */public boolean isFocused() {return true;}
6、抖动的文本框和震动
LinearLayout query_layout=(LinearLayout) findViewById(R.id.query_layout);Animation animation=AnimationUtils.loadAnimation(this, R.anim.shake);query_layout.startAnimation(animation);//震动时间,休息时间long[] patterm={200,200,300,300};//-1不重复 0 循环Vibrator vibrator=(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);vibrator.vibrate(patterm,-1 );shake.xml
android:duration="1000" android:fromXDelta="0" android:toXDelta="10" android:interpolator="@anim/cycle_7" >
cycle_7.xml 实现7次循环
标签:
相关推荐:
最新新闻:
- 全球新消息丨阳历一年365天或366天 阴历与阳历阴历有什么区别?
- daemon.exe daemon.exe进程是什么?有什么用? 环球观察
- 飞利浦w626怎么root?飞利浦w626root方法详解
- 织梦内容管理系统架设过程中出现的问题有哪些?
- PSN电脑怎么注册?PSN电脑上注册的步骤:当前聚焦
- tinyumbrella升级至4.21.02版本 备份更简便_独家焦点
- 迅雷怎么设置多文件同时下载?迅雷设置多文件同时下载方法
- 怎么看cf的服务器在哪个文件夹?cf录像在哪个文件夹? 每日速递
- 手机qq怎么创建群?手机qq创建群方法
- excel中INDEX函数怎么用?INDEX函数查询单元格的教程
- 为什么插入耳机,无声音,显示扬声器未插入排查?解决方法_环球看点
- vivo云服务登录密码忘了怎么办?vivo云服务登录密码忘了解决方法 每日快播
- SpringBoot2.x系列教程54--NoSQL之整合
- 天天速看:Win10怎么添加bing搜索引擎?Win10添加bing搜索引擎的方法
- lomo相机怎么洗照片?lomo相机洗照片的方法技巧
- php龙之战争游戏搭建教程 龙之战争1.02正式版地图安装方法
- DirectX修复工具有什么作用?DirectX修复工具使用方法
- 华为手机sn号码怎么查看?华为手机sn号码查看方法
- 报道:多普达s1uc浏览器-UCWEB7.0CA安装包下载
- 世界热议:Win7系统中Telnet服务如何安装和启动?方法步骤如下
- 热文:数据库中的存储过程和自定义函数有哪些区别?区别介绍
- 电脑无法安装kb4012212补丁怎么办?处理方法介绍 当前速看
- 电车之狼R的结局介绍 隐藏结局是什么? 世界动态
- Android代码片段有哪些?Android代码片段详情介绍
- Python早期设计与开发 主要数据类型有哪些?
- 如何设置时间校对同步?电脑时钟校准方法 焦点热门
- 【独家焦点】Ubuntu22.04版:免费授权使用的五笔输入法介绍
- 微信分享的BUG记录 华为平板M6测试结果 环球精选
- 佳能60D套机镜头的区别是什么?详情介绍_焦点信息
- ac+是什么?ac+详情介绍
- 云盘哪个好?如何找到适合自己的网络云盘?:世界独家
- 什么是宽带网?宽带网详情介绍_环球今日讯
- 每日简讯:realme真我V15闪回键在哪设置?怎么打开闪回键?
- 【天天播资讯】logo是什么意思?logo的中文含义
- 伦敦人被取暖账单和罢工淹没的新年
- fast无线路由器怎么设置?fast无线路由器设置方法步骤:短讯
- FTX创始人SBF拒绝认罪,10月再庭审 天天新消息
- 看视频更清晰 NV发布RTX视频超分辨率技术:快资讯
- 【天天快播报】《幻塔》获DLSS3 《死亡空间重制版》支持DLSS2
- 资讯:RTX40系笔记本电脑2月上市 售价6900元起
- 北半球“暖冬”,欧美天然气价格大跌,欧洲危机成过去式?|每日头条
- 联想台式主机仅重1007克 配12代酷睿 起售人民币2200元-全球热头条
- 预算五六千元买游戏本!选这3款一定不会采坑
- 卖不动了!苹果iPhone等四大产品线砍单:需求减弱是主因
- 3月1日起苹果全系电池涨价 要近千元:网友吐槽割韭菜:即时焦点
- Win11被打脸 PS/Office/游戏应用中Win10反而更快 全球通讯
- 《原子之心》新预告片展示华丽光线追踪和刺激战斗
- Roguelite风格FPS《巫火》DLSS3实机预告片分享
- 快消息!《三体》版权所有者游族“易主” 上海加游成最大股东
- 当前热门:RTX 40系列笔记本公布 999美元起、4050-4090都有
财经
热门排行
- M站年度评分最高游戏出炉 《艾尔登法环》成最大赢家|环球热资讯
- 踏空?懵了?昔日私募冠军回撤“创纪录”,投资老将遭遇尴尬时刻
- 环球微头条丨13代酷睿处理器+RTX 40显卡!宏碁暗影骑士系列CES焕新
- 资讯:宏碁推出eKinekt 酷骑桌 倡导活力永续生活方式
- AMD新品来袭!宏碁CES推搭载锐龙7000的暗影骑士和传奇Go笔记本新品_今头条
- 当前动态:TrueGame平台更进一步!宏碁黑科技超级裸眼3D模式为游戏加冕
- 【环球快播报】居然比13代还贵 英特尔12代酷睿全线悄然涨价
- 《神夏》主创:只要卷福华生回归 新一季明天就开搞|天天速看料
- B社官网确认 《星空》将于2023年上半年发售
- 古巴是如何率先走出新冠疫情的?|全球观热点
新闻放送
- 世界热讯:《艾尔登法环》获324个年度最佳奖项 破《最后生还者2》纪录
- “快银”演员亚伦·泰勒·约翰逊有望成为下一任007|天天新要闻
- 游族“卖身”,尘埃落定 天天热资讯
- 网友吐槽世界各国的游戏女角色形象:中日韩完虐欧美?|每日热讯
- 环球即时看!世界由你开辟 PlayStation官方发布多城市户外巨屏超燃混剪
- 《艾尔登法环》超过《最后的生还者2》 成为年度游戏最多获得者-天天热议
- 网飞恐怖悬疑惊悚剧《1899》被砍 环球关注
- 虎嗅【作·嗅之星】周榜第138期:世界百事通
- 辉瑞新冠口服药怎么开?什么病人可以用?上海闵行的社区医院这样做-世界聚焦
- Redmi 12C号称36个月不卡 699元已开售
- moto razr折叠屏手机降价:立减1000 到手4999
- 每日热讯!小米12s Ultra已经跌到4999元:13 Ultra快来了
- 观察:荣耀平板V8 Pro开售:12.1英寸大屏 2499起
- 全球百事通!外网投票:你最喜欢《战神5》的哪一把武器?
- 真的不如原版?《赵云传》官方分享新旧人物形象对比
- 2023年CES前瞻:首屈一指的汽车技术展示盛会
- “温州父子俩搞物联网,浙江又多了一个北交所IPO”:焦点日报
- 新资讯:12月安卓手机性能榜发布,K60 Pro排第二,第一是这款
- 中关村在线获中国国际广告节2022广告主盛典年度整合营销金案
- 聚焦超大规模数据中心 施耐德电气助力运营商出海建设|要闻
- iPhone 14年末立减1000 年货节大促来了_报道
- 全球热资讯!一加11明天发布:现已上架 或3799起售
- 环球最新:玩家讨论《GTAOL》中的奇怪设定:空气墙让人折磨
- 环球视点!三年后,凤仙郡终于下雨了
- 球王贝利:球技与偏见:环球观天下