Android仿微博实现添加话题的输入框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android仿微博实现添加话题的输入框相关的知识,希望对你有一定的参考价值。
参考技术A 由于项目需求,需要实现一个类似于微博的可以添加话题的编辑框,实现发布帖子时可以添加话题,并且话题要变色 可选中 可删除等.起初为了快速实现,就在网上找了以下,有人已经实现了此功能,这里给出参考帖子的链接 android 自定义view-仿新浪微博#话题#插入EditText不过测试的时候发现有些许bug,并且在华为手机上删除话题不能被选中,于是就基于参考帖子的实现思路,对其中一些东西进行了修改,并适配了华为(原因是通过 KeyCode==KeyEvent.KEYCODE_DEL竟然监听不到华为个别机型的删除键)手机.
1.通过onSelectionChanged()监听光标的位置,来判断光标是否被选中在话题文字内部,如果在话题内部,则将光标定位到话题结束处.
2.添加addTextChangedListener(),监听文字变化.如果是删除文字动作,则遍历TEditText内部的list,判断是否有话题,如果有并且删除的是话题,则对话题进行选中.最后,刷新TEditText的UI展示.
如图1是添加话题的效果
图2是话题被选中的效果
源码和TEditText使用访问我
AndroidAndroid开发之常用的loading等待效果实现,仿微博等待动画。两种实现方式详解
作者:程序员小冰 (转载请说明出处)博客地址:http://blog.csdn.net/qq_21376985
长期维护的Android项目,里面包括常用功能实现,以及知识点详解, 当然还有Java中的知识点。
具体请看github:https://github.com/QQ986945193/DavidAndroidProjectTools
首先大家都知道,当我们在app开发的时候,一般少不了,比如当请求网络数据时,肯定网速不好的时候,
加载的时候比较慢,所以如果此时已经进入了新的界面,那么肯定不好看,所以一般都会有一个loading等待提示框,告诉用户正在加载中,给用户更好的体验。因此这就是我教大家实现的效果,先看一下效果图吧:
我这里使用了一个handler延迟两秒钟让它消失不见。当然项目中大家可以监听自己所需要的方法,使加载框消失。这只是简单的两种实现方式,当然还有更好的其他效果,具体可以自己实现以下,也可以去网上搜索一下。
说主题吧,我这里只是讲一下思路,具体代码可以试着写一下,当然我在最后会给大家放源代码下载地址。
第一步,先写一个自定义dialog,代码也比较详细。就是创建一个dialog,如:
public static Dialog createLoadingDialog(Context context, String msg)
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.dialog_loading, null);// 得到加载view
LinearLayout layout = (LinearLayout) v
.findViewById(R.id.dialog_loading_view);// 加载布局
TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
tipTextView.setText(msg);// 设置加载信息
Dialog loadingDialog = new Dialog(context, R.style.MyDialogStyle);// 创建自定义样式dialog
loadingDialog.setCancelable(true); // 是否可以按“返回键”消失
loadingDialog.setCanceledOnTouchOutside(false); // 点击加载框以外的区域
loadingDialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));// 设置布局
/**
*将显示Dialog的方法封装在这里面
*/
Window window = loadingDialog.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setGravity(Gravity.CENTER);
window.setAttributes(lp);
window.setWindowAnimations(R.style.PopWindowAnimStyle);
loadingDialog.show();
return loadingDialog;
然后我们就可以看到返回的是dialog对象,我们在我们的类中调用即可。当然,有显示,就有关闭,我们直接将关闭的方法,也封装在自定义dialog中。
/**
* 关闭dialog
*
* @param mDialogUtils
*/
public static void closeDialog(Dialog mDialogUtils)
if (mDialogUtils != null && mDialogUtils.isShowing())
mDialogUtils.dismiss();
然后我们进行调用即可。我们这里只是告诉大家实现的思路,因为涉及到了一些图片素材,所以,我在这里提供一下这两种实现方式的源代码,所以大家可以参考一下。优化一下集中在项目中,
本节示例源代码地址:https://github.com/QQ986945193/DialogLoadding
以上是关于Android仿微博实现添加话题的输入框的主要内容,如果未能解决你的问题,请参考以下文章