修改dialog主题属性
博客专区 > tihgunt 的博客 > 博客详情
修改dialog主题属性
tihgunt 发表于3年前
修改dialog主题属性
  • 发表于 3年前
  • 阅读 908
  • 收藏 2
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 动态修改dialog主题使之具有holo样式

如果没有定义主题样式可以,动态设定dialog的主题

方法一:

AlertDialog.Builder builder = new AlertDialog.Builder(context,AlertDialog.THEME_HOLO_LIGHT);


方法二:

////hack for no holo theme related ----begin

int divierId = dialog.getContext().getResources()

.getIdentifier("android:id/titleDivider", null, null);

int titleId = dialog.getContext().getResources()

.getIdentifier("android:id/alertTitle", null, null);

int panelId = dialog.getContext().getResources()

.getIdentifier("android:id/parentPanel", null, null);

int topPanelId = dialog.getContext().getResources()

.getIdentifier("android:id/topPanel", null, null);

dialog.show();

View decorView = (View) dialog.getWindow().getDecorView();

View contentView = decorView.findViewById(android.R.id.content);

if (contentView != null) {

contentView.setOnTouchListener(new OnTouchListener() {


@Override

public boolean onTouch(View v, MotionEvent event) {

Log.d(TAG, "touch outside");

dialog.dismiss();

return false;

}


});

}

View topPanel = dialog.findViewById(topPanelId);

if (topPanel != null) {

topPanel.setOnTouchListener(new OnTouchListener() {


@Override

public boolean onTouch(View v, MotionEvent event) {

Log.d(TAG, "touch topPanel");

return true;

}


});

}

View dividerView = dialog.findViewById(divierId);

if (dividerView != null)

dividerView.setBackgroundColor(dialog.getContext().getResources()

.getColor(R.color.holo_blue_light));

TextView alertTitle = (TextView) dialog.findViewById(titleId);

if (alertTitle != null) {

alertTitle.setTextColor(dialog.getContext().getResources()

.getColor(R.color.holo_blue_light));

alertTitle.setTextSize(DimenUtil.sp2px(10));

}

View parentPanel = dialog.findViewById(panelId);

if (parentPanel != null) {

FrameLayout.LayoutParams lp = (android.widget.FrameLayout.LayoutParams) parentPanel

.getLayoutParams();

if (lp != null) {

lp.gravity = Gravity.CENTER;

parentPanel.setLayoutParams(lp);

}

}

ListView list = dialog.getListView();

if (list != null) {

ArrayAdapter<String> adapter = new ArrayAdapter<String>(

dialog.getContext(), R.layout.dialog_list_item,

R.id.textView1, items);

list.setAdapter(adapter);

}

////hack for no holo theme related ----begin


标签: android 主题 dialog
共有 人打赏支持
粉丝 2
博文 6
码字总数 1700
×
tihgunt
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: