本文主要介绍如何使用一个可以响应各个方向CompoundDrawables点击操作的TextView。关于其实现原理见可以响应各个方向CompoundDrawables点击操作的TextView的实现原理。
TextView可以通过setCompoundDrawablesWithIntrinsicBounds在TextView内容的上下左右添加图片方便用户的需要,但默认并没有提供设置点击这些图片后响应操作的接口。本文介绍自己自定义的一个TextView达到此效果,主要功能为设置TextView各个方向图片的响应。
首先让我们看下效果
点击最下面的图片响应如上,执行结果为显示“Bottom”的Toast,可以下载Demo代码CompoundDrawablesTextViewDemo编译运行。
1、引入公共库
引入 TrineaAndroidCommon GoogleCode或(TrineaAndroidCommon Git)作为android项目的公共类,或是自己抽取其中的CompoundDrawablesTextView部分使用
2、在xml中配置
用现在的CompoundDrawablesTextView替换原来的TextView即可
<com.trinea.common.view.CompoundDrawablesTextView android:id="@+id/textWithImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3dp"/>
3、在java类中调用
主要是设置TextView的CompoundDrawables和DrawableClickListener
CompoundDrawablesTextView textWithImage = (CompoundDrawablesTextView)this.findViewById(R.id.textWithImage); textWithImage.setCompoundDrawablesWithIntrinsicBounds(R.drawable.image, R.drawable.image, R.drawable.image, R.drawable.image); textWithImage.setDrawableClickListener(new ImageClickListener()); class ImageClickListener implements DrawableClickListener { @Override public void onClick(DrawablePosition position) { switch (position) { case LEFT: // 左边图片被点击的响应 Toast.makeText(context, "left", Toast.LENGTH_SHORT).show(); break; case RIGHT: // 右边图片被点击的响应 Toast.makeText(context, "right", Toast.LENGTH_SHORT).show(); break; case BOTTOM: // 底部图片被点击的响应 Toast.makeText(context, "bottom", Toast.LENGTH_SHORT).show(); break; case TOP: // 上边图片被点击的响应 Toast.makeText(context, "top", Toast.LENGTH_SHORT).show(); break; default: break; } } }
可以根据自己需要补充上面switch中的响应函数即可
4、其他设置
4.1 设置图片可响应点击区域允许的误差
setLazy(int, int)表示设置Drawable可响应的点击区域x和y方向允许的误差,正数表示点击范围向外扩展,负数表示点击范围向内收缩
4.2 设置是否同时被点击的Drawable都响应
setAllDrawableTouchedResponse(boolean),表示是否所有被touch的Drawable都响应事件,true表示都响应,false表示按照左上右下的顺序响应第一个点击范围内的Drawable
注意:若点击的位置同时在多个图片的有效范围内,响应顺序为左上右下,设置 setAllDrawableTouchedResponse(boolean)为false后就按顺序响应第一个,其他被点击图片的响应忽略。
4.3 设置是否始终响应OnClickListener
setAlwaysClick(boolean)表示是否始终响应OnClickListener,true表示响应Drawable后依然响应OnClickListener,false表示响应Drawable后不再响应OnClickListener。
1、MAME4all
安装 MAME4all 到手机后在sd卡的sdcard/ROMs/MAME4all/roms,将你需要的ROMS拷贝到这里就可以了,推荐的格式是zip文件,文章末尾有一些游戏rom的下载地址。
有些情况下,你可能需要对ROMS进行转换(Rebuild),所以你需要下载一个工具叫做clrmamepro。它是一款整理ROMS的软件,下载地址在文章末尾处。
首先用豌豆荚之类的工具把sdcard/ROMs/MAME4all/中的clrmame.dat拷贝出来,然后运行clrmamepro,单击Add DatFile,将clrmame.dat添加进去。接着双击列表框中的MAME 4ALL Roms DatFile进入操作界面。
在操作界面选择Rebuilder,进入Rebuilder窗口。Source是你需要转换的ROMS的源文件夹,Destination是指转换完后这些文件将会复制到这个文件夹里。然后单击Rebuild,就可以进行转换了。
转换完成,将Destination中的ROMS拷贝到 sdcard/ROMs/MAME4all/roms,运行MAME4all即可!
clrmamepro地址:http://mamedev.emulab.it/clrmamepro/
街机游戏rom:http://115.com/folder/fet00hjm
android街机模拟器(带部分游戏rom):MAMEall-v1.0.apk
日期:2012-6-16 来源:GBin1.com
作为独特的网站设计风格,使用3D特效设计的网站会带给访问者超酷的视觉冲击,今天小编我将介绍最近收集的8个超酷的3D网站设计,希望带给大家灵感!
1.愤怒的小鸟workspace绝对有趣的3D网站设计,你可以看到一个随机的小鸟会跟随你的滚动而移动
2. The Story of Send
google的一个超酷的3D特效,你可以看到一个运动的Gmail图标跟随着导线传递,相当有创意的网站特效
3. 2Brand一个带有滚动特效的3D首页,你可以看到漂浮的云和气泡
........
........
来源:分享6个超酷的3D特效网站设计