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

关于弹出对话框时 标题栏的抖动问题
遇到这个问题是在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);
                                           
                                            AlertDialog able = builder.create();
                                            able
                                                    .getWindow()
                                                    .setFlags(
                                                            WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                                            WindowManager.LayoutParams.FLAG_FULLSCREEN);
                                            able.show();
                                        }
                                    });
                                    return true;
                                }
                            });
            detailsMenu.setIcon(R.drawable.ic_menu_view_details);
        }