关于弹出对话框时 标题栏的抖动问题

遇到这个问题是在camera的MenuHelper类中,我们需要的处理就是添加语句:

AlertDialog ad = adBuilder.create();
ad.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
ad.show();
,详细如下

if ((inclusions & INCLUDE_DETAILS_MENU) != 0) {
MenuItem detailsMenu = menu.add(0, 0, 80, R.string.details)
.setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
onInvoke.run(new MenuCallback() {
public void run(Uri u,
ImageManager.IImage image) {
if (image == null)
return;

AlertDialog.Builder builder = new AlertDialog.Builder(
activity);

final View d = View.inflate(
activity,
R.layout.detailsview, null);

ImageView imageView = (ImageView) d
.findViewById(R.id.details_thumbnail_image);
imageView.setImageBitmap(image
.miniThumbBitmap());

TextView textView = (TextView) d
.findViewById(R.id.details_image_title);
textView.setText(image
.getDisplayName());

long length = getImageFileSize(image);
String lengthString = lengthString = length < 0 ? ""
: android.text.format.Formatter
.formatFileSize(
activity,
length);
((TextView) d
.findViewById(R.id.details_file_size_value))
.setText(lengthString);

int dimensionWidth = 0;
int dimensionHeight = 0;
if (isImage) {
dimensionWidth = image
.getWidth();
dimensionHeight = image
.getHeight();
d
.findViewById(
R.id.details_duration_row)
.setVisibility(
View.GONE);
d
.findViewById(
R.id.details_frame_rate_row)
.setVisibility(
View.GONE);
d
.findViewById(
R.id.details_bit_rate_row)
.setVisibility(
View.GONE);
d
.findViewById(
R.id.details_format_row)
.setVisibility(
View.GONE);
d.findViewById(
R.id.details_codec_row)
.setVisibility(
View.GONE);
} else {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever
.setMode(MediaMetadataRetriever.MODE_GET_METADATA_ONLY);
retriever
.setDataSource(image
.getDataPath());
try {
dimensionWidth = Integer
.parseInt(retriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH));
dimensionHeight = Integer
.parseInt(retriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT));
} catch (NumberFormatException e) {
dimensionWidth = 0;
dimensionHeight = 0;
}

try {
int durationMs = Integer
.parseInt(retriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
String durationValue = formatDuration(
activity,
durationMs);
((TextView) d
.findViewById(R.id.details_duration_value))
.setText(durationValue);
} catch (NumberFormatException e) {
d
.findViewById(
R.id.details_frame_rate_row)
.setVisibility(
View.GONE);
}

try {
String frame_rate = String
.format(
activity
.getString(R.string.details_fps),
Integer
.parseInt(retriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_FRAME_RATE)));
((TextView) d
.findViewById(R.id.details_frame_rate_value))
.setText(frame_rate);
} catch (NumberFormatException e) {
d
.findViewById(
R.id.details_frame_rate_row)
.setVisibility(
View.GONE);
}

try {
long bitRate = Long
.parseLong(retriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BIT_RATE));
String bps;
if (bitRate < 1000000) {
bps = String
.format(
activity
.getString(R.string.details_kbps),
bitRate / 1000);
} else {
bps = String
.format(
activity
.getString(R.string.details_mbps),
((double) bitRate) / 1000000.0);
}
((TextView) d
.findViewById(R.id.details_bit_rate_value))
.setText(bps);
} catch (NumberFormatException e) {
d
.findViewById(
R.id.details_bit_rate_row)
.setVisibility(
View.GONE);
}

String format = retriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_FORMAT);
((TextView) d
.findViewById(R.id.details_format_value))
.setText(format);

String codec = retriever
.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CODEC);

if (codec == null) {
d
.findViewById(
R.id.details_codec_row)
.setVisibility(
View.GONE);
} else {
((TextView) d
.findViewById(R.id.details_codec_value))
.setText(codec);
}
} catch (RuntimeException ex) {
// Assume this is a corrupt
// video file.
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
// Ignore failures while
// cleaning up.
}
}
}

String dimensionsString = String
.format(
activity
.getString(R.string.details_dimension_x),
dimensionWidth,
dimensionHeight);
((TextView) d
.findViewById(R.id.details_resolution_value))
.setText(dimensionsString);

String dateString = "";
long dateTaken = image
.getDateTaken();
if (dateTaken != 0) {
java.util.Date date = new java.util.Date(
image.getDateTaken());
java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat();
dateString = dateFormat
.format(date);

((TextView) d
.findViewById(R.id.details_date_taken_value))
.setText(dateString);
} else {
d
.findViewById(
R.id.details_date_taken_row)
.setVisibility(
View.GONE);
}

builder
.setNeutralButton(
R.string.details_ok,
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialog,
int which) {
dialog
.dismiss();
}
});

builder
.setIcon(
android.R.drawable.ic_dialog_info)
.setTitle(
R.string.details_panel_title)
.setView(d);

[color=red]AlertDialog able = builder.create();
able
.getWindow()
.setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
able.show();[/color] }
});
return true;
}
});
detailsMenu.setIcon(R.drawable.ic_menu_view_details);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值