代码片段
Dialog,底下弹出栏的写法:
public class ImageMenuDialog extends Dialog implements
android.view.View.OnClickListener {
public interface OnMenuClickListener {
void onClick(TextView menuItem);
}
private OnMenuClickListener mListener;
private ImageMenuDialog(Context context, boolean flag,
OnCancelListener listener) {
super(context, flag, listener);
}
@SuppressLint("InflateParams")
private ImageMenuDialog(Context context, int defStyle) {
super(context, defStyle);
View view = getLayoutInflater().inflate(R.layout.dialog_image_menu,
null);
view.findViewById(R.id.menu1).setOnClickListener(this);
view.findViewById(R.id.menu2).setOnClickListener(this);
view.findViewById(R.id.menu3).setOnClickListener(this);
super.setContentView(view);
}
public ImageMenuDialog(Context context) {
this(context, R.style.dialog_bottom);
}
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
getWindow().setGravity(Gravity.BOTTOM);
WindowManager m = getWindow().getWindowManager();
Display d = m.getDefaultDisplay();
WindowManager.LayoutParams p = getWindow().getAttributes();
p.width = d.getWidth();
getWindow().setAttributes(p);
}
public void setOnMenuClickListener(OnMenuClickListener lis) {
mListener = lis;
}
@Override
public void onClick(View v) {
if (mListener != null) {
mListener.onClick((TextView) v);
}
}
}
private void showOptionMenu() {
final ImageMenuDialog dialog = new ImageMenuDialog(this);
dialog.show();
dialog.setCancelable(true);
dialog.setOnMenuClickListener(new OnMenuClickListener() {
@Override
public void onClick(TextView menuItem) {
if (menuItem.getId() == R.id.menu1) {
saveImg();
} else if (menuItem.getId() == R.id.menu2) {
sendTweet();
} else if (menuItem.getId() == R.id.menu3) {
copyUrl();
}
dialog.dismiss();
}
});
}
- 图片压缩
/**
* 图片写入文件
*
* @param bitmap
* 图片
* @param filePath
* 文件路径
* @return 是否写入成功
*/
public static boolean bitmapToFile(Bitmap bitmap, String filePath) {
boolean isSuccess = false;
if (bitmap == null) {
return isSuccess;
}
File file = new File(filePath.substring(0,
filePath.lastIndexOf(File.separator)));
if (!file.exists()) {
file.mkdirs();
}
OutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(filePath),
8 * 1024);
isSuccess = bitmap.compress(CompressFormat.PNG, 100, out);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
closeIO(out);
}
return isSuccess;
}