[置顶] Android 开发常用技巧(持续更新...)
2017-03-10 16:54
381 查看
原创文章,欢迎转载。转载请注明来源:
http://blog.csdn.net/hust_twj/article/details/61200354
1防止按钮快速点击的工具类
2XML中添加点击事件
3创建用于管理所有活动的类
4扩大点击区域
5给 ImageView 加遮罩蒙层
6定义 Layout 时向上转为 View
创建BaseActivity 作为所有活动的父类:
参考:http://blog.csdn.net/carlin321/article/details/36480251
定义如下:
http://blog.csdn.net/hust_twj/article/details/61200354
1防止按钮快速点击的工具类
2XML中添加点击事件
3创建用于管理所有活动的类
4扩大点击区域
5给 ImageView 加遮罩蒙层
6定义 Layout 时向上转为 View
1、防止按钮快速点击的工具类:
private static final int MIN_DELAY_TIME= 1000; // 两次点击间隔不能少于1000ms private static long lastClickTime; public static boolean isFastClick() { boolean flag = true; long currentClickTime = System.currentTimeMillis(); if ((currentClickTime - lastClickTime) >= MIN_DELAY_TIME) { flag = false; } lastClickTime = currentClickTime; return flag; }
2、XML中添加点击事件
需要监听按钮的点击事件时,若按钮较多,可以在 xml 文件中添加android:onClick="add"属性,然后在 Activity 中添加对应的方法即可。,方法签名为:
public void add(View view)。
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="add"/>
3、创建用于管理所有活动的类:
public class ActivityCollector { public static List<Activity> activities = new ArrayList<>(); public static void addActivity(Activity activity){ activities.add(activity); } public static void removeActivity(Activity activity){ activities.remove(activity); } public static void finishAllActivities(){ for(Activity activity: activities){ if (!activity.isFinishing()){ activity.finish(); } } } }
创建BaseActivity 作为所有活动的父类:
public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); } }
4、扩大点击区域:
针对按钮的可点击区域较小的情况,可以使用控件的paddingxxx属性替代部分
marginxxx属性。
margin属性指的控件之外的区域,
padding则可以将这些区域归为自身所有,这样既可在不改变 UI 的情况下扩大点击区域。
5、给 ImageView 加遮罩(蒙层):
在 ImageView 外套一层 FrameLayout,设置 FrameLayout 的foreground属性。
参考:http://blog.csdn.net/carlin321/article/details/36480251
6、定义 Layout 时向上转为 View
在 activity 中定义 xml 中继承自 ViewGroup(如FrameLayout、LinearLayout、RelativeLayout等)的元素用 View 修饰,而非具体的xxxLayout,这样当 xml 布局修改时 activity 中相应的定义不用改变,如 FrameLayout:
<FrameLayout android:id="@+id/layout_photo_album" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/img_bg_avatar" android:layout_toEndOf="@+id/img_avatar" android:layout_marginEnd="10dp"> </FrameLayout>
定义如下:
View layoutPhotoAlbum; layoutPhotoAlbum = findViewById(R.id.layout_photo_album);
相关文章推荐
- Android之开发常用小功能(持续更新中。。。)
- Android 开发(实用技巧,持续更新)
- [置顶] Android常用开源项目compile(持续更新中...)
- [置顶] Android常用权限和依赖(持续更新...)
- iOS开发常用小技巧记录(持续更新)
- [置顶] Android 实用技巧知识合集(持续更新)
- Android开发技巧汇总(持续更新····)
- Android开发中常用的库总结(持续更新)
- [置顶] 安卓开发常用工具类整理,楼主亲测可用贴(持续更新),如有补充欢迎跟帖
- Android中常用开发工具类—持续更新...
- [置顶] Android开发主题分类(持续更新)
- Android 开发小技巧整理(持续更新)
- # AndroidStudio 常用工具和使用技巧(持续更新)
- android开发常用组件【持续更新中。。。】
- [置顶] Android 开发问题汇总(持续更新)
- Android常用开发网址(持续更新)
- android开发中常用的一些集成开放平台(持续更新)
- android开发的常用小功能汇总(持续更新)
- Android中常用开发工具类—持续更新...
- [置顶] 跟我学AngularJs:AngulaJs开发技巧汇总(持续更新)