您的位置:首页 > 移动开发 > Android开发

[置顶] 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

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: