收集Meizhi项目中用到的自定义View和工具类
Androids
复制到粘贴板
public class Androids {
public static void copyToClipBoard(Context context, String text, String success) {
ClipData clipData = ClipData.newPlainText("meizhi_copy", text);
ClipboardManager manager = (ClipboardManager) context.getSystemService(
Context.CLIPBOARD_SERVICE);
manager.setPrimaryClip(clipData);
Toast.makeText(context, success, Toast.LENGTH_SHORT).show();
}
}
Toasts
吐丝工具类,需要在Application中注册
public class Toasts {
public static Context sContext;
private Toasts() {
}
public static void register(Context context) {
sContext = context.getApplicationContext();
}
private static void check() {
if (sContext == null) {
throw new NullPointerException(
"Must initial call ToastUtils.register(Context context) in your " +
"<? " +
"extends Application class>");
}
}
public static void showShort(int resId) {
check();
Toast.makeText(sContext, resId, Toast.LENGTH_SHORT).show();
}
public static void showShort(String message) {
check();
Toast.makeText(sContext, message, Toast.LENGTH_SHORT).show();
}
public static void showLong(int resId) {
check();
Toast.makeText(sContext, resId, Toast.LENGTH_LONG).show();
}
public static void showLong(String message) {
check();
Toast.makeText(sContext, message, Toast.LENGTH_LONG).show();
}
public static void showLongX2(String message) {
showLong(message);
showLong(message);
}
public static void showLongX2(int resId) {
showLong(resId);
showLong(resId);
}
public static void showLongX3(int resId) {
showLong(resId);
showLong(resId);
showLong(resId);
}
public static void showLongX3(String message) {
showLong(message);
showLong(message);
showLong(message);
}
}
PreferencesLoader
SharedPreferences工具
public class PreferencesLoader {
private SharedPreferences mSharedPreferences;
private Context mContext;
public PreferencesLoader(Context context) {
mContext = context;
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
}
public void saveBoolean(int keyResId, Boolean value) {
String key = mContext.getString(keyResId);
saveBoolean(key, value);
}
public void saveBoolean(String key, Boolean value) {
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putBoolean(key, value);
editor.apply();
}
public Boolean getBoolean(String key) {
return mSharedPreferences.getBoolean(key, false);
}
public Boolean getBoolean(String key, boolean def) {
return mSharedPreferences.getBoolean(key, def);
}
public Boolean getBoolean(int keyResId, boolean def) {
String key = mContext.getString(keyResId);
return mSharedPreferences.getBoolean(key, def);
}
public int getInt(String key) {
return mSharedPreferences.getInt(key, 0);
}
public void saveInt(String key, int value) {
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putInt(key, value);
editor.apply();
}
}
RatioImageView
比例ImageView
public class RatioImageView extends ImageView {
private int originalWidth;
private int originalHeight;
public RatioImageView(Context context) {
super(context);
}
public RatioImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public RatioImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setOriginalSize(int originalWidth, int originalHeight) {
this.originalWidth = originalWidth;
this.originalHeight = originalHeight;
}
@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (originalWidth > 0 && originalHeight > 0) {
float ratio = (float) originalWidth / (float) originalHeight;
int width = MeasureSpec.getSize(widthMeasureSpec);
int height = MeasureSpec.getSize(heightMeasureSpec);
// TODO: 现在只支持固定宽度
if (width > 0) {
height = (int) ((float) width / ratio);
}
setMeasuredDimension(width, height);
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
}
Shares
分享
public class Shares {
public static void share(Context context, int stringRes) {
share(context, context.getString(stringRes));
}
public static void shareImage(Context context, Uri uri, String title) {
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setType("image/jpeg");
context.startActivity(Intent.createChooser(shareIntent, title));
}
public static void share(Context context, String extraText) {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.action_share));
intent.putExtra(Intent.EXTRA_TEXT, extraText);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(
Intent.createChooser(intent, context.getString(R.string.action_share)));
}
}