动态修改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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值