Android View封装工具类

public class ViewUtil {

public static <V extends View> V setGone(final V view, final boolean gone) {
if (view != null)
if (gone) {
if (View.GONE != view.getVisibility())
view.setVisibility(View.GONE);
} else {
if (View.VISIBLE != view.getVisibility())
view.setVisibility(View.VISIBLE);
}
return view;
}

public static <V extends View> V toggle(final V view) {
if (view != null) {
if (View.VISIBLE == view.getVisibility()) {
view.setVisibility(View.GONE);
}else {
view.setVisibility(View.VISIBLE);
}
}
return view;
}

/**
* 设置View是否可见
*
* @param view
* @param invisible
* @return
*/
public static <V extends View> V setInvisible(final V view,
final boolean invisible) {
if (view != null)
if (invisible) {
if (View.INVISIBLE != view.getVisibility())
view.setVisibility(View.INVISIBLE);
} else {
if (View.VISIBLE != view.getVisibility())
view.setVisibility(View.VISIBLE);
}
return view;
}

public static void increaseHitRectBy(final int amount, final View delegate) {
increaseHitRectBy(amount, amount, amount, amount, delegate);
}

public static void increaseHitRectBy(final int top, final int left, final int bottom, final int right, final View delegate) {
final View parent = (View) delegate.getParent();
if (parent != null && delegate.getContext() != null) {
parent.post(new Runnable() {
public void run() {
final float densityDpi = delegate.getContext().getResources().getDisplayMetrics().densityDpi;
final Rect r = new Rect();
delegate.getHitRect(r);
r.top -= transformToDensityPixel(top, densityDpi);
r.left -= transformToDensityPixel(left, densityDpi);
r.bottom += transformToDensityPixel(bottom, densityDpi);
r.right += transformToDensityPixel(right, densityDpi);
parent.setTouchDelegate(new TouchDelegate(r, delegate));
}
});
}
}

public static int transformToDensityPixel(int regularPixel, DisplayMetrics displayMetrics) {
return transformToDensityPixel(regularPixel, displayMetrics.densityDpi);
}

public static int transformToDensityPixel(int regularPixel, float densityDpi) {
return (int) (regularPixel * densityDpi);
}

private ViewUtil() {
}

}

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627

发表评论

邮箱地址不会被公开。 必填项已用*标注