最近在搞android 新浪微博客户端,有一些心得分享
弄android客户端表情功能可以用以下思路
1.首页把新浪的表情下载到本地一文件夹种,表情图片的命名要用新浪微博表情原来的命名
比如 新浪的害羞表情是shame.gif 那么你在本地也得命名为shame.gif,命名相同主要是为了能够匹配表情对应的code.
2.把本地的表情都放进android的资源文件里----drawable下面
3.访问新浪的表情接口(新浪返回的数据类型有json和xml两种,本人用xml),把返回的信息,利用xml解析器解析出来的信息储存在一个Emotion.java的bean里,这样就可以根据Emotion.java的code找到一一对应的资源表情图片了
4.实现一个可以让用户选择的表情界面,本人用GridView实现
5.实现点击GridView的每一个item,处理根据item的index查找对应的表情code,然后再把code利用正则把code转换为相对应的表情图片,最后表情插入EditText进行发送。
下面是具体的实现过程
1.把新浪表情图片下载到本地的实现如下:(这个可以建一个java工程进行下载)
public void getFriendList() throws Exception { BlogReleaseServiceImpl service = new BlogReleaseServiceImpl(); List<Emotions> list = service.getEmotion(); for (Emotions emotions : list) { String path = emotions.getUrl(); String filename = path.substring(path.lastIndexOf("/") + 1,path.length()); URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setRequestMethod("GET"); conn.setReadTimeout(5 * 1000); if(conn.getResponseCode() == 200){ InputStream is = conn.getInputStream(); byte[] data = readStream(is); File file = new File("f: \\sina_images\\" + filename); FileOutputStream fs = new FileOutputStream(file); fs.write(data); fs.close(); }else{ System.out.println("请求失败"); } } } public byte[] readStream(InputStream is) throws Exception { ByteArrayOutputStream os = new ByteArrayOutputStream(); byte[] buffer = new byte[2048]; int len = 0; while((len = is.read(buffer)) != -1){ os.write(buffer,0,len); } is.close(); return os.toByteArray(); }
2:把本地的表情都放进android的资源文件里----drawable下面(这个就不用多说了,直接选取所有文件复制就行了)
3:
3.1访问新浪的表情接口,把返回的信息如下:
<emotion> <phrase>[嘻嘻]</phrase> <type>face</type> <url>gif/tooth.gif </url> <is_hot>false</is_hot> <is_common>true</is_common> <order_number>0</order_number> <category></category> lt;/emotion>
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 新浪
, 表情
, 新浪云平台 java工程
, 本地
, reate emote hread
, conn
, code
, 表情功能
, Android表情面板
android生成gif文件
android qq表情实现、android 表情功能实现、android 微信表情实现、android 表情雨实现、新浪微博客户端,以便于您获取更多的相关知识。