[原创] Android 自定义AlertDialog 去黑边终极解决方案(亲测有效!)

问题:自定义AlertDialog出现黑边


运行代码段:




View view = View.inflate(context, R.layout.dialog_common, null);

mDialog = new AlertDialog.Builder(context).create();

mDialog.setView(view);

mDialog.show();


dialog_common.xml




<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/shape_dialog_white"

android:orientation="vertical" >

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginBottom="35dp"

android:layout_marginTop="35dp"

android:gravity="center" >

<TextView

android:id="@+id/dialog_tv_content"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/dialog_edit_wall_title"

android:textColor="@android:color/black"

android:textSize="19sp" />

</LinearLayout>

<View

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="@color/app_color" />

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center" >

<TextView

android:id="@+id/dialog_tv_left"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="12dp"

android:layout_marginTop="12dp"

android:layout_weight="1"

android:gravity="center"

android:text="@string/dialog_edit_wall_secede"

android:textColor="@android:color/black" />

<TextView

android:id="@+id/dialog_tv_right"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="12dp"

android:layout_marginTop="12dp"

android:layout_weight="1"

android:gravity="center"

android:text="@string/dialog_new_reply_cancel"

android:textColor="@color/app_color" />

</LinearLayout>

</LinearLayout>

运行时截图(出现一圈的黑边!):



解决问题:

1. 百度搜索“Android 自定义AlertDialog去除黑边”,得出总结3个字:“然并卵”!大部分都是这样做:

修改代码:

mDialog.setView(view);

为:

mDialog.setView(view,0,0,0,0);

运行时截图(什么叫“然并卵”,粗的黑边变成细的黑边,结果黑边还在):

2. 分析:自己写的layout没什么问题,显然是AlertDialog的style或者是theme的问题。

3. 终极解决方案:

增加一个style


<!-- styles.xml on API 14+ devices -->

<style name="SampleTheme.Light" parent="android:Theme.Holo.Light.DarkActionBar">

<item name="android:windowNoTitle">true</item>

</style>


添加到layout中或者AndroidManifest.xml(我是添加到AndroidManifest.xml中,layout可以自己去加看看

<activity android:name="com.kesar.ui.MainActivity"

android:theme="@style/SampleTheme.Light"/>

运行时截图(接下来就是见证奇迹的时刻!):

附件列表

时间: 2024-10-12 20:42:31

[原创] Android 自定义AlertDialog 去黑边终极解决方案(亲测有效!)的相关文章

Android 自定义AlertDialog 去黑边终极解决方案(亲测有效!)

问题:自定义AlertDialog出现黑边 运行代码段: View view = View.inflate(context, R.layout.dialog_common, null); mDialog = new AlertDialog.Builder(context).create(); mDialog.setView(view); mDialog.show(); dialog_common.xml <?xml version="1.0" encoding="utf

android 自定义照相机Camera黑屏 (转至 http://blog.csdn.net/chuchu521/article/details/8089058)

对于一些手机,像HTC,当自定义Camera时,调用Camera.Parameters的 parameters.setPreviewSize(width, height)方法时,如果width和height为奇数情况下,则会出现黑屏现象,解决办法可参考SDK提供的ApiDemos中关于Camera的 例子: List<Size> sizes = parameters.getSupportedPreviewSizes(); Size optimalSize = getOptimalPreview

Android自定义AlertDialog

常见的一种方法: [html] view plaincopyprint? AlertDialog.Builder builder; AlertDialog alertDialog; LayoutInflater inflater = getLayoutInflater(); // 添加自定义的布局文件 View layout = LayoutInflater.from(TestOne.this).inflate( R.layout.dialog, null); final TextView te

Android 自定义AlertDialog(退出提示框)

有时候我们需要在游戏或应用中用一些符合我们样式的提示框(AlertDialog) 以下是我在开发一个小游戏中总结出来的.希望对大家有用. 先上效果图: 下面是用到的背景图或按钮的图片 经过查找资料和参考了一下例子后才知道,要实现这种效果很简单.就是在设置alertDialog的contentView. 以下的代码是写在Activity下的,代码如下: public boolean onKeyDown(int keyCode, KeyEvent event) { // 如果是返回键,直接返回到桌面

android 自定义AlertDialog(一段)

java: final AlertDialog dialog = new AlertDialog.Builder(mContext) .create(); dialog.setCancelable(false); dialog.show(); dialog.getWindow().setContentView(R.layout.enable_gps_dialog); Button unagree_dialog = (Button) dialog.getWindow() .findViewById

android 自定义ratingbar 图片显示不全的解决方案

在res/style中自定义评分条: <!-- 自定义评分条 --> <style name="roomRatingBar" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable">@drawable/rating_bar</item> <item name="android:mi

Android之SDK Manager无法更新终极解决方案

前几天,Google终于发布了Android5.0正式版--棒棒糖,也许大家和我一样,也想第一时间更新SDK,结果打开SDK Manager,却让人大失所望,根本突破不了天朝的网络围墙啊.默默问一句:最近好久没有听到方校长的消息了,不知道病魔是否已经战胜方校长? 好了,废话不多说,先看看更新成功5.0的战果: 其实要越过天朝的GFW封锁,有两种比较简单的方法: ①.寻找免费的vpn,通常付费的vpn也有免费的体验时间或流量,缺点是经常掉线,网络慢. ②.修改hosts文件,不过目前百度搜索出来的

Android studio实用快捷windows版快捷键,亲测可用

说明 键位 注释代码(//) Ctrl + / 注释代码(/ /) Shift+ Ctrl + / 格式化代码 Ctrl + Alt + L 打开一个class ctrl+n 打开一个file ctrl+shift+n 打开一个symbol ctrl+alt+shift+n 显示类的继承关系 ctrl+h 导入包,自动修正 Alt+回车 清除无效包引用 Alt + Ctrl + O 查找 Ctrl + F 查找+替换 Ctrl + R 复制行 ctrl+d 删除行 Ctrl + Y 上下移动当前

C#中通过Coded UI Test Web Page初体验(图文并茂,去繁就简!亲测通过哦~)

今天首次按照网上的步骤进行Coded UI测试,终于测试通过了,我这次进行的自动化测试是:打开浏览器,输入www.baidu.com,然后输入lty,然后点击页面中第一条数据的左侧位置(为了能获取到TestResult方法中需要的值). 浓缩后的步骤如下: 1.File-->New-->CodedUITestProject: 2.创建后直接就可以录制脚本,也可以不录制,在项目中右键UIMap.uitest点击Edit With Coded UI Test Builder: 3.点击小红点开始录