Android杂谈————软键盘、背景透明、粘贴板

本文探讨了Android开发中遇到的软键盘遮挡输入框的问题,介绍了WindowManager.LayoutParams的四种常量设置,如SOFT_INPUT_ADJUST_PAN和SOFT_INPUT_ADJUST_RESIZE,用于解决这一问题。此外,还讲解了如何实现Activity间的背景透明效果,通过设置Theme为Theme.translucent或Theme.transparent,并在styles.xml和colors.xml中定义相应的透明度。最后,简述了在API 11及以上版本中如何使用ClipboardManager进行文本粘贴操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

● SoftInputModes

用户在输入框输入时,软键盘会跳出来,这时软键盘可能挡住了输入框。怎么办嗯?Android的WindowManager.LayoutParams提供了四个常量设置:

SOFT_INPUT_ADJUST_NOTHING: 不调整(输入法完全直接覆盖住,未开放此参数)

SOFT_INPUT_ADJUST_PAN: 把整个Layout顶上去露出获得焦点的EditText,不压缩多余空间

SOFT_INPUT_ADJUST_RESIZE: 整个Layout重新编排,重新分配多余空间

SOFT_INPUT_ADJUST_UNSPECIFIED: 系统自己根据内容自行选择上两种方式的一种执行(默认配置)

● Translucent ,Translucent Blur

实现背景透明效果。activity1启动activity2,可以隐约看到activity1的背景。这种效果是通过设置Theme来实现的。在AndroidManifest.xml文件对应的activity中,android:theme=”@style/Theme.translucent”或者android:theme=”@style/Theme.transparent”.

translucent和transparent两个style的定义在styles.xml文件中。设置windowBackground为@drawbale/translucent_background或@drawbale/transparentt_background。

这两个drawable在colors.xml文件中定义。可以看到值分别为e0000000和00000000。前两位是alpha值,表示透明度。后六位是RGB分量。

●ClipboardManager

把一段文字通过这种方式粘贴到粘贴板上面(需要版本11以上支持)
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
clipboard.setText(需要粘贴的文本);

    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @SuppressLint("NewApi")
    @SuppressWarnings("deprecation")
    private void copyToClipBoard(){
        if (Build.VERSION.SDK_INT<11) 
            return;
        String text= "需要粘贴的文字";
        if (!TextUtils.isEmpty(text)){
            ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
            clipboard.setText(text);
            toast("text已经复制到剪贴板了");     
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值