分享几点Android 开发中的小技巧

VSLAM框架对比 格VSLAM特点介绍: (一)ORB-SLAM2 (二)ORB-SLAM3 (三)LSD-SLAM (四) 阅读详情
  • Android 在XML里面共享同一布局文件
  • 使用XML的方式为背景添加渐变的效果
  • 如何用代码自定义Android 自动生成的标题?
  • 在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?

1.Android 在XMl里面共享同一布局文件
一直以为共享同一布局文件都是在之前写好的布局之后复制过来,或者通过 java代码使用layoutInflater Add进来的。但今天提供了一个更为方便的使用方法,可以在你的任意LAYOUT文件里面将其他的LAYOUT文件拿过来使用,代码也很简单,如下:
<? xml version="1.0" encoding="UTF-8" ?>
< LinearLayout android:id ="@+id/FrameLayout01"
    android:background
="@drawable/layout_background" android:layout_width ="fill_parent"
    android:layout_height
="wrap_content" xmlns:android ="http://schemas.android.com/apk/res/android" >
< TextView android:text ="欢迎你使用本软件" android:id ="@+id/TextView01"
        android:textColor
="#f0f0f0" android:layout_width ="wrap_content"
        android:layout_height
="wrap_content" ></ TextView >
</ LinearLayout >





这是我定义的公用layout 文件,我给他起名为:title
然后我们在另外的布局文件如下使用:
< include layout ="@layout/title"
/>




即可将title 的布局直接拿到我们当前的布局文件中。
Tip:使用include标记将layout 放入我们当前的layout文件,也可以直接使用当前 view .findViewByid得到title 布局文件中的任意View 。
2.使用XML的方式为背景添加渐变的效果
为背景实现渐变效果,最传统的方法是用PS制作一张渐变的效果图,但我人懒 没去学PS技术,也懒得更增加一个图片在应用里面,这里使用了Google 提供的一个非常棒的方法来解决背景渐变的功能。
首先,在Drawable 文件夹里面添加一个xml文件,然后写入如下代码:
<? xml version="1.0" encoding="UTF-8" ?>
< shape xmlns:android ="http://schemas.android.com/apk/res/android" >
< gradient android:startColor ="#52adcd" android:endColor ="#1c87b1"
        android:angle
="270.0" >
</ gradient >
</ shape >



对 应属性比较简单,这里不多做介绍,android:shape="rectangle" 为代表渐变的形状为矩形块。android:angle ="270.0"代表角度为270,由上到下的渐变,如果我改变成0那么就变成了从左到右的渐变,如果改变90.0那么渐变会从下边往下渐变,朋友们可以 多改变一下参数试试效果。
发个效果图吧:

Tip:效果图用的角度是0。

3.如何用代码自定义Android 自动生成的标题?
这个比较简单只用了三句代码:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);





效果如下图:


Tip:这三句代码的位置必须如上代码。
4.在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?

要知道如何在ActivityGroup里面操作子Activity的布局View 那么得先了解一下,如何将Activity放入ActivityGroup 里面,这里我封装了一个小小的方法,公供参考:

/**
     * 为ActivityGroup的一个ViewGroup设置动态的Activity View 对象
     *
     *
@param 上下文
     *
@param LocalActivityManager对象
     *
@param ActivityGroup想要包容Activity
     *            View 对象的容器(ViewGroup)
     *
@param 通过Intent的意图打算启用哪个Activity类
     *
@param 开始Activity
     *            设置的Id
     
*/
public
static
void getView(Context context, LocalActivityManager lam,
            LinearLayout layout_load, Class
<?> cls, String Id) {
        Intent intent
=
new Intent(context, cls);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        Window w
= lam.startActivity(Id, intent);
        View v
= w.getDecorView();
        layout_load.removeAllViews();
        layout_load.setPadding(
5 , 5 , 5 , 5 );
        layout_load.addView(v,
new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT,
                LinearLayout.LayoutParams.FILL_PARENT));
    }





然后在ActivityGroup页面如此使用:
private LocalActivityManager manager; // 声明一个LocalActivityManager对象
manager = getLocalActivityManager();   // 得到这个对象






界面初始化时:

/**
     * 初始化
     
*/
void init() {
        comonHelp.getView(
this , manager, main, preferenceSet. class , " swc " );
    }




有了设置的ID了,那就可以得到当前的Activity 了。
下面给出我用过的一段代码,以作参考:
SharedPreferences.Editor editor = getSharedPreferences(
                                
" com.swc.yaomei_preferences " ,
                                Activity.MODE_PRIVATE).edit();
                        LocalActivityManager manager
= getLocalActivityManager();
                        PreferenceActivity acitivty
= (PreferenceActivity) manager
                                .getActivity(
" swc " );
                        
for ( int i =
0 ; i <
9 ; i ++ ) {
                            editor.putString(
" KEY_ "
+ i, " N/A " );
                            PreferenceScreenExt ext
= (PreferenceScreenExt) acitivty
                                    .findPreference(
" KEY_ "
+ i);
                            RelativeLayout layout
= (RelativeLayout) ext
                                    .getLayout();
                            TextView summary
= (TextView) layout.getChildAt( 1 );
                            summary.setText(
" N/A " );
                        }
                        editor.commit();
                        System.gc();





上 面的PreferenceActivity 是得到一个PreferenceAcitity 因为我是要修改位于ActivityGroup里面对应的Preference所以这里要获得一个PreferenceAcitity ,如果你是一个普通的Activity 直接得到一个Activity 对象就行,之后的操作都是一致的。

Oracle迁移至华为GaussDB SQL语法和存储过程转换 在将Oracle数据库迁移至GaussDB时,SQL语法和存储过程的转换是确保应用程序正常运行和数据完整性的关键环节。由于两者在数据类型、函数、过程语言等方面存在差异,必须系统化地进行转换和测试。正则表达式脚本:批量替换常见的语法差异。SQL解析工具:解析SQL脚本,生成GaussDB兼容的语法。代码审查工具:自动检查转换后的代码,确保语法和逻辑正确。将Oracle迁移至GaussDB涉及到SQL语法和存储过程的全面转换。通过系统化的转换步骤、使用合适的工具并结合手动调整,可以确保迁移过程的顺利进行。 阅读详情

相关推荐

别再傻傻分不清了!用Design Compiler和PrimeTime实操对比PBA与GBA模式

本文深度解析静态时序分析(STA)中Design Compiler与PrimeTime工具的PBA与GBA模式差异,通过实际案例演示两种模式在转换时间计算、时钟路径分析等方面的对比,并提供工程实践中模式选择的策略与调试技巧,帮助工程师在芯片设计流程中平衡精度与效率。

weixin_42552315的博客 414

安卓渐变色

先举个例子: 如图:三种颜色从左往右渐变 以下为各个属性详解: 1.angle android:angle=“Integer” :当android:type=“linear” 时,angle为渐变的角度:0 代表从左往右渐变,90 从上到下,180从右往左,360左往右。 值为 0 到 360,必须是45的倍数或0。(ps:type不等于linear时是不起作用的) 2.startColor、centerColor、endColor android:startColor=“color” :渐变开始位置的颜

weixin_44619313的博客 2417

机器人开发路线

通过这个路线图,你可以在6个月内完成从原型到试产的全流程。建议初期采用敏捷开发模式,每两周迭代一个核心功能模块。在硬件集成遇到瓶颈时,推荐参考。

woody218的博客 744

Android背景色内部渐变

使用shape的gradient属性实现渐变 效果图 线性渐变 圆形渐变 扫描渐变 线性渐变 在drawable文件夹下新建shape资源: 属性值 android:angle (必须是45的整数倍. ) Integer:渐变颜色的角度 android:angle="0": left to right android:angle="90": bottom to top android:angle="180": right to left android.

binbin 4808

BQ4050开发进阶(二):Protections参数优化策略与实战解析

本文深入解析了BQ4050电池管理芯片中Protections参数的优化策略与实战方法。针对电压、电流、温度等核心保护功能,详细阐述了如何根据具体电芯特性、负载场景和环境因素,精细调整CUV、COV、OCC/OCD等阈值与延时,以在确保电池绝对安全的前提下,实现极致的用户体验与系统可靠性。

rgv234567的博客 479

RK3588网络调试笔记:当我把默认RTL8211F PHY换成另一款时,踩了哪些坑?

本文详细记录了在RK3588平台上将默认RTL8211F PHY芯片替换为其他型号的全过程,包括硬件设计验证、内核驱动适配、复位时序配置等关键步骤。通过实际案例分享,提供了从驱动调试到硬件优化的系统性解决方案,帮助开发者高效完成PHY芯片替换,确保网络接口稳定性。

weixin_30291791的博客 669

android自定义listview实现圆角

在项目中我们会经常遇到这种圆角效果,因为直角的看起来确实不那么雅观,可能大家会想到用图片实现,试想上中下要分别做三张图片,这样既会是自己的项目增大也会增加内存使用量,所以使用shape来实现不失为一种更好的实现方式。在这里先看一下shape的使用:   [html] view plaincopy xml version="1.0" encoding

duanyu218的专栏 677

Python 爬虫进阶:爬取 APP 数据(Charles 抓包 + Requests)

本文详细介绍了APP数据爬取的完整技术方案。首先通过Charles抓包工具配置HTTPS代理和证书,解析APP通信协议;然后分析请求参数、反爬机制和动态签名生成规则;接着使用Python的Requests库实现模拟请求、分页爬取和数据存储;最后针对证书问题、Token失效等常见问题提供解决方案。文章强调抓包分析、参数逆向和请求模拟三大核心技术,同时提醒开发者需遵守法律法规,合理控制爬取频率。该方案适用于移动端数据采集场景,为无法直接获取网页数据的情况提供了有效解决方案。

2503_91057718的博客 2119

Android 背景渐变 渐变背景 shape

[code="java"] android:background="@drawable/shape_background_grey" [/code] 其中 android:angle="270" 代表方向, 270表示从上到下,180表示从右到左,默认从左 [code="java"] [/code] ...

Squall.Leonhart 945

YOLOv8集成CPCA(Combined Parallel Convolutional Attention)注意力机制模块YOLOv8深度教程

YOLOv8集成CPCA注意力模块教程摘要 本教程详细介绍了如何将YOLOv8 CPCA(Combined Parallel Convolutional Attention)注意力模块集成到YOLOv8目标检测框架中。CPCA模块结合了通道注意力和多尺度空间注意力机制,通过全局池化和双路径融合增强通道特征,并利用多尺度深度可分离卷积捕获空间上下文信息。YOLOv8 教程包含完整的实现步骤:创建CPCA模块代码、修改YOLOv8模型解析逻辑、编写自定义配置文件,YOLOv8YOLOv8YOLOv8YOLOv8

FJN110的博客 1619

自适应控制 (Adaptive Control) 算法详解及案例分析

自适应控制是一种能够在线调整控制器参数以适应系统动态变化的控制方法。其核心思想是通过实时估计系统参数或调整控制器参数,使系统在不确定性或动态变化的环境中仍能保持稳定性和性能。

闲人编程的博客 4081

Android程序Shape使用总结!

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状。首先我们了解一下Shape下面有哪些标签,都代表什么意思:solid:填充 android:color指定填充的颜色gradient:渐变 android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍。另外渐变默认的模式为android:type=“linear”,即线性渐变,

huahaiyi的博客 4434

YOLOv11改进策略【模型轻量化】| 替换华为的极简主义骨干网络:VanillaNet

本文记录的是基于VanillaNet的YOLOv11轻量化改进方法研究。VanillaNet的极简主义在于无 shortcut 连接,并且在网络的每个阶段仅使用一层卷积,无额外复杂模块,仅通过自身简洁的架构设计和训练策略,实现有效地训练和优化。本文在替换骨干网络中配置了原论文中的、和11种模型,以满足不同的需求。

Limiiiing的博客 1722

分享几点Android 开发中的小技巧吧。不知道算不算?

也不想多说多,就拿几点来给大家分享吧: Android 在XML里面共享同一布局文件使用XML的方式为背景添加渐变的效果如何用代码自定义Android 自动生成的标题?在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI? 就上面四点吧,这些好像在搜索里面不大搜索得到,我今天就拿出来讲讲,好像己经有几个星期没有更新过博客的Android 文章了,呵呵,之前承...

weixin_30609331的博客 70

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

安卓rom开发教程!跟Android初学者分享几点经验,写给正在求职的安卓开发

越来越多的人在提“移动端的下半场”、“Android 开发的焦虑”之类的,也有人在喊“技术天天在变,学也学不完”,“昨天 Kotlin 今天 Flutter”。其实我却认为,如果你技术达到了一定程度,你无需太过在意这些。 移动端真正进入下半场了吗?于我看来并没有,最多说“Android 技术的探索”进入了下半场,而整个市场还是乐观的。以前是 BAT 的天下,而近两年出来越来越多的独角兽:头条、抖音、拼多多、快手、小猿搜题等,这些公司的业务都在移动端上,他们需要招聘更多的移动端人才。如果真要说下半场,只能说很

1735

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

几点Android 开发中的小技巧

<br />也不想多说多,就拿几点来给大家分享吧: Android 在XML里面共享同一布局文件使用XML的方式为背景添加渐变的效果如何用代码自定义Android 自动生成的标题?在ActivityGroup里面如何访问子Activity的View 并操作它去改变UI?<br />就上面四点吧,这些好像在搜索里面不大搜索得到,我今天就拿出来讲讲,好像己经有几个星期没有更新过博客的Android 文章了,呵呵,之前承诺的Ebook 源码也没有跟上,最近人懒,刚买的Ipad 一直在玩,荒废了学业呢。。。。。<

zhjp4295216的专栏 691

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

android开发视频教学下载地址,跟Android初学者分享几点经验

2,然后开始刷题,最推荐的肯定是leetcode,刷题建议按照标签进行刷题(比如队列,栈,哈希表),刷题从易到难,最好能够刷一百题左右,如果一天一题,至少要三个月以上,所以这个耗时比较长,要从比较早开始准备。1, 先看一遍大话数据结构,熟悉一些基本概念,大话这本书只讲了一些基本的数据结构,像是B树,B+树,红黑树需要自己看一些博客或是网站,推荐一个讲解算法的网站-七月算法,另外海量数据处理也是一个经常考的专题,它结合了数据结构和操作系统的一些知识,这个需要进行针对性准备。说不定能改变你现在的状态呢!

2401_84408845的博客 922

android开发需要哪些基础,,跟Android初学者分享几点经验

如果你觉得这些内容对你有帮助,可以扫码领取!!!!

VIP129370的博客 894

Android---教你如何开发扫二维码功能,跟Android初学者分享几点经验

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人,若有关Android学习进阶可以与我在Android终极开发交流群一起讨论交流。增量添加SDK依赖,SDK他们有两种版本,plus和普通版,plus效果好点儿但是包稍微大一点儿,这个地方我选了plus版本,小伙伴们可以根据自己需要自行选择,版本号填他们最新的版本就好。

2014

Android开发必看,跟Android初学者分享几点经验

1.描述一下android的系统架构?2.Android线程间通信有哪几种方式3. 如何避免OOM异常4.Android程序运行时权限与文件系统权限的区别?5.Hybrid 通信原理是什么,有做研究吗?6.Framework工作方式及原理,Activity是如何生成一个view的,机制是什么7.ANR是什么?怎样避免和解决ANR8.Devik进程,linux进程,线程的区别。

2401_85030394的博客 1082

Android SDK开发技术分享

最近在工作中负责统一支付平台的SDK开发部分,就此总结下SDK开发的技术点、注意事项、与普通app开发的差别,作为自我总结,也作为公司内部互相学习的分享,希望有Android开发需求或者对Android有兴趣的同学(互相学习称为同学),多多关注,多多回复。 一、SDK开发的概念      Android SDK开发,指为第三方app开发提供功能性封装,提供文档(doc),实例(

zhangxinjin的博客 9486

跟Android初学者分享几点经验:该如何自学Android开发?(Android自学资料大全)

有了一定的Java基础(不需要精通Java),就可以开始入门Android。建议初学Android者,一定要先搭建自己的开发环境,先准备和环境。再看书的过程,一边看知识点一边写示例程序,一来加深印象,二来提高动手能力。•:作者李刚,这是我看过的第一个Android书籍,目前有第三版了,我当时看的是第二版基于Android 4.2,书中有大量的实例,记得当时每看完一个实例就跟着敲了一遍,大概花了一周时间把这本书看完并把大部分的实例代码都亲手敲了一遍。•。

2401_86964104的博客 1491

跟Android初学者分享几点经验,最全Android知识总结

前言 博主14年毕业后从事Android移动应用开发,至今已是第六年了。在深圳摸爬滚打了好几年,也都是在小厂的圈子里跳来跳去。在我拿到这份新offer钱,15K是我拿过的最高工资。已经有快一年没有涨过工资了。疫情在家隔离了两个多月,开始系统复习、学习。梅花香自苦寒来。终于是在五一前后获得了上市公司的offer,虽不是什么一流大厂,但对于我来说,从15K的薪资涨到将近30K,已经非常满足了。下面分享一下我的复习、学习指南,以及一些心得体会吧。 1.要做一个尽可能流畅的ListView,你平时在工作中如何进行优

m0_57077948的博客 163
上一篇: Android中shape的使用
下一篇: Ecplise中常用快捷键
zen
zen
博客等级 码龄20年 18粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值