Toast 自定义显示位置,toast和通讯录的a-z 一起走 部分代码
来源:互联网 发布:matlab离散数据积分 编辑:程序博客网 时间:2024/05/26 23:00
Toast的显示位置可以我们自己设置,通过如下命令:
toast = Toast.makeText(getContext(), "" + (char) ('A' + position),Toast.LENGTH_SHORT);//可以控制toast显示的位置toast.setGravity(Gravity.LEFT, xoffset, yoffset);toast.show();
同时我们通过toast.cancle()可以用来取消一个toast,这在我们滑动到下一个字母的时候,就可以取消掉上一个字母的显示。
if(toast!=null)toast.cancel();
package com.zqxue.Review151222;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.util.Log;import android.util.TypedValue;import android.view.Gravity;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;/** * Created by XUE on 2015/12/22. */public class SimpleView extends LinearLayout { private Paint paint; private float stopY; private Toast toast; public SimpleView(Context context) { super(context); } public SimpleView(Context context, AttributeSet attrs) { super(context, attrs); init(context,attrs); } public void init(Context context,AttributeSet attrs){ paint = new Paint(); paint.setColor(Color.RED); for (int i = 0; i < 26; i++) { TextView textView = new TextView(context); String text = Character.toString((char)('A'+i)); textView.setText(text); ViewGroup.LayoutParams layoutParams = new LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, 0, 1 ); textView.setLayoutParams(layoutParams); //textSize int height = getHeight(); int textSize = height/26-2; textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize); textView.setGravity(Gravity.RIGHT); addView(textView); } } private int currentPosition=-1; @Override public boolean onTouchEvent(MotionEvent event) { boolean ret = false; int action = event.getAction(); float ex = event.getX(); float ey = event.getY(); stopY=ey; int position = -1; String type = ""; switch (action){ case MotionEvent.ACTION_DOWN: type ="DOWN"; currentPosition=-1; //toast if(toast!=null)toast.cancel(); toast = Toast.makeText(getContext(), "" + (char) ('A' + position), Toast.LENGTH_SHORT); Log.d("151222MY","LONG="+Toast.LENGTH_LONG+" SHORT="+Toast.LENGTH_SHORT+ ex+""+ey); //可以控制toast显示的位置 //toast.setGravity(Gravity.LEFT, right + child.getWidth() + 200, bottom - getHeight() / 2); toast.setGravity(Gravity.LEFT, getWidth() - 150, (int) ey - getHeight() / 2); toast.show(); ret=true; break; case MotionEvent.ACTION_MOVE: int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { View child = getChildAt(i); int top = child.getTop(); int left = child.getLeft(); int right = child.getRight(); int bottom = child.getBottom(); if(top<=ey&&left<=ex){ if(right>=ex&&bottom>=ey){ position = i; } } if(position>-1&¤tPosition!=position){ Log.d("151222MY","click "+position); Log.d("151222MY","click"+(char)('A'+position)); currentPosition=position; if(toast!=null)toast.cancel(); toast = Toast.makeText(getContext(), "" + (char) ('A' + position), Toast.LENGTH_SHORT); Log.d("151222MY","LONG="+Toast.LENGTH_LONG+" SHORT="+Toast.LENGTH_SHORT); //可以控制toast显示的位置 //toast.setGravity(Gravity.LEFT, right + child.getWidth() + 200, bottom - getHeight() / 2); toast.setGravity(Gravity.LEFT, getWidth()-150, (int)ey - getHeight() / 2); toast.show(); } } type="MOVE"; break; case MotionEvent.ACTION_UP: type="UP"; break; } //Log.d("151222MY", type); return ret; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawLine(0, 0, 300, stopY, paint); Log.d("151222MY","onDraw"); }}
0 0
- Toast 自定义显示位置,toast和通讯录的a-z 一起走 部分代码
- 自定义toast样式和指定显示位置
- Android自定义Toast,指定Toast信息显示的位置并使用Toast显示其他View
- 自定义显示的Toast
- 自定义可以在子线程显示的Toast,并自定义显示时长和位置
- 自定义背景和显示时间的Toast
- Toast 的默认和自定义显示
- android Toast工具类,可自定义位置和取消显示
- Android中自定义Toast视图和修改显示位置
- 控制 Toast 显示的位置
- 控制Toast的显示位置
- 改变Toast显示的位置
- android Toast 自定义显示位置 custom position
- Android 弹无虚发之第五弹:来点儿不一样的Toast(自定义Toast,设置Toast显示位置,自定义Toast的复杂布局)
- Toast自定义,自定义Toast的两种方式,土司的代码显示
- Toast显示时间的自定义
- 自定义Toast的显示效果
- 自定义Toast,防止层叠显示问题,和自定义Toast样式
- Codeforces Round# 180 div2
- Leetcode.179 Largest Number
- [javase学习笔记]-7.2 构造函数与一般函数的区别
- ES6学习——新的语法:函数参数Spread
- 2016太原UI设计师郭文军讲解APP设计类型内容有哪些
- Toast 自定义显示位置,toast和通讯录的a-z 一起走 部分代码
- eclipse不自动弹出提示(alt+/快捷键失效)
- 做自己想做的工作,你也可以
- IOS 四种保存数据的方式
- Java中的线程池——Executor框架
- 左旋转字符串 (可能不是你想的那么简单)
- 在storyboard中设置一个一个button,只进行了位置设置,没有使用约束,发现用代码修改不了如何解决
- 5-7 UVA 12100 Printer Queue打印队列
- 农村市场,互联网+时代的又一个金矿