首页 文章 精选 留言 我的

精选列表

搜索[android jetpack],共10000篇文章
优秀的个人博客,低调大师

Android动态布局

每次都忘记,记下来,以后方便查找,代码是从现在的项目中Copy出来的,先来个relativeLayout的 private void setListPath(Context context, RelativeLayout footerRelativeLayout, String ButtonText) { if (flagAddFooterGuide) { // 我的音乐按钮 ImageView myMusic = new ImageView(context); myMusic.setImageResource(R.drawable.style1_mymusic); myMusic.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub ((MyMusicActivity) myContext).setSdCardFlag(false); ((MyMusicActivity) myContext).onCreate(null); } }); myMusic.setId(1); // 设置ID为1 ImageView myStorage = new ImageView(context); myStorage.setImageResource(R.drawable.style1_mymusic_usbstore); myStorage.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 设置ListView为显示 ((MyMusicActivity) myContext).setlistViewLinearLayoutVisible(false); // GalleryVisible为隐藏 ((MyMusicActivity) myContext).setGalleryVisible(true); } }); myStorage.setId(2); // 设置id为2 // 设置本地当前目录的按钮 MyImageButton myImageButtonFolderNow = new MyImageButton(context, R.drawable.style1_mymusic_details, ButtonText); RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp1.addRule(RelativeLayout.ALIGN_PARENT_LEFT); RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp2.addRule(RelativeLayout.RIGHT_OF, 1);//在控件ID为1的控件的右边 RelativeLayout.LayoutParams lp3 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp3.addRule(RelativeLayout.RIGHT_OF, 2); footerRelativeLayout.addView(myMusic, lp1); footerRelativeLayout.addView(myStorage, lp2); // 播放按钮 MyImageButton myImageButtonPlay = new MyImageButton(context, R.drawable.mymusic_button_pause_backgroud, "播放"); footerRelativeLayout.addView(myImageButtonFolderNow, lp3); myImageButtonPlay.setId(4); RelativeLayout.LayoutParams lp4 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp4.addRule(RelativeLayout.LEFT_OF, 5); // 随机按钮 MyImageButton myImageButtonPlayRandom = new MyImageButton(context, R.drawable.mymusic_button_play_random, "随机开"); myImageButtonPlayRandom.setId(5); RelativeLayout.LayoutParams lp5 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp5.addRule(RelativeLayout.LEFT_OF, 6); // 歌词按钮 MyImageButton myImageButtonLyric = new MyImageButton(context, R.drawable.mymusic_button_lyric, "LRC歌词"); myImageButtonLyric.setId(6); RelativeLayout.LayoutParams lp6 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp6.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); // 加入 footerRelativeLayout.addView(myImageButtonLyric, lp6); footerRelativeLayout.addView(myImageButtonPlayRandom, lp5); footerRelativeLayout.addView(myImageButtonPlay, lp4); flagAddFooterGuide = false; ?[Copy to clipboard] Downloadzuiniuwang.java 再来个LinearLayout的 ?[Copy to clipboard] Downloadzuiniuwang.java super.onCreate(icicle); LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); btn = new Button(this); btn.setId(101); btn.setText("test looper"); btn.setOnClickListener(this); LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(100,50); param.topMargin = 10; layout.addView(btn, param); btn2 = new Button(this); btn2.setId(102); btn2.setText("exit"); btn2.setOnClickListener(this); layout.addView(btn2, param); tv = new TextView(this); tv.setTextColor(Color.WHITE); tv.setText(""); //其中 FP 是final int FP=LinearLayout.LayoutParams.FILL_PARENT; //final int WC = LinearLayout.LayoutParams.WRAP_CONTENT; LinearLayout.LayoutParams param2 = new LinearLayout.LayoutParams(FP, WC); param2.topMargin = 10; param2.setMargins(0, 0, 5, 0); //参数分别是(int left, int top, int right, int bottom) layout.addView(tv, param2); setContentView(layout); 一定要记住,创建的Parameter addview时,一定是这个子控件的参数,而不是这个容器本身的参数,这个相当重要,我在此处浪费了不少时间。如果需要对本Layout加入上参数可以 layout.setLayoutParams( XXX params) 和 layout.setXXX 便可。 本文转自 最牛傻蛋 51CTO博客,原文链接:http://blog.51cto.com/zuiniuwang/720070,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android Spinner控件

今天给大家演示如何使用Spinner,具体见图: 1:实现UI布局layout/main.xml 2:添加值values/strings.xml 3:第一种方法实现功能SpinnerActivity.java 4:第二种自定义条目样式SpinnerActivity.java 4:需要定义布局layout/item.xml 5:具体样式见图: 今天的Spinner终于写完了,希望大家多多支持,谢谢 本文转自 Art_Hero 51CTO博客,原文链接:http://blog.51cto.com/curran/507523,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android性能分析

场景说明 程序通过top指令,查询性能如下:CPU%:29% VSS:1291636K RSS:80496K 应该如何分析这些数据,然后得出优化的结论。 数据项说明 VSS:(跟ps指令VSZ数据显示列是一致的)当前进程访问的地址空间。该值包含了没有进驻RAM的内存值,例如mallocs分配了内存,但是还没有进行写入。VSS几乎不会用来衡量一个进程的实际内存使用数量 RSS:一个进程在RAM中使用的内存总和。RSS容易产生误导的信息,因为它包括了进程所需要的所有的共享库的内存,尽管该共享库只是加载一次,而不管还有多少进程会使用它。RSS衡量一个单独的进程占用的内存使用量也是不准确的。 疑问 面对1.2GB的VSS使用量,是否会导致程序异常,目前暂时没有出现,进行稳定性测试 本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1713997,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

用户登录
用户注册