-
imageView = new ImageView©;
-
StateListDrawable listDrawable = new StateListDrawable();
-
listDrawable.addState(SELECTED_STATE_SET, this.getResources()
-
.getDrawable(drawableselec));
-
listDrawable.addState(ENABLED_STATE_SET, this.getResources()
-
.getDrawable(drawable));
-
imageView.setImageDrawable(listDrawable);
-
imageView.setBackgroundColor(Color.TRANSPARENT);
-
setGravity(Gravity.CENTER);
-
addView(imageView);
-
}
上面的代码也就是自定义的一个View吧。
下面这个就是构建选项卡以及内容(选中的是第二个选项卡),我这里就把每个不同的选项卡内容分别放在不同的Activity里面,然后通过Tab来将这些Activity合并在一起,这样显得比较有层次感。
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
requestWindowFeature(Window.FEATURE_NO_TITLE);
-
setContentView(R.layout.main_tab);
-
TabHost tabHost=getTabHost();
-
TabView view = null;
-
// 最近联系人
-
view = new TabView(this, R.drawable.bg_tab_dial_normal, R.drawable.bg_tab_dial_normal);
-
view.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.selecttabbackground));
-
TabSpec recentContactSpec=tabHost.newTabSpec(“RecentContact”);
-
recentContactSpec.setIndicator(view);
-
Intent recentContactIntent = new Intent(this, RecentContactActivity.class);
-
recentContactSpec.setContent(recentContactIntent);
-
// 联系人
-
view = new TabView(this, R.drawable.bg_tab_contact_normal, R.drawable.bg_tab_contact_normal);
-
view.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.selecttabbackground));
-
TabSpec contactBookSpec=tabHost.newTabSpec(“ContactBook”);
-
contactBookSpec.setIndicator(view);
-
Intent contactBookIntent = new Intent(this,ContactBookActivity.class);
-
contactBookSpec.setContent(contactBookIntent);
-
// 短信
-
view = new TabView(this, R.drawable.bg_tab_sms_normal, R.drawable.bg_tab_sms_normal);
-
view.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.selecttabbackground));
-
TabSpec smsMessageSpec = tabHost.newTabSpec(“SmsMessage”);
-
smsMessageSpec.setIndicator(view);
-
Intent smsMessageIntent = new Intent(this, SmsMessageActivity.class);
-
smsMessageSpec.setContent(smsMessageIntent);
-
//设置
-
view = new TabView(this, R.drawable.bg_tab_setting_normal, R.drawable.bg_tab_setting_normal);
-
view.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.selecttabbackground));
-
TabSpec settingSpec = tabHost.newTabSpec(“Setting”);
-
settingSpec.setIndicator(view);
-
Intent settingIntent = new Intent(this, SettingActivity.class);
-
settingSpec.setContent(settingIntent);
-
tabHost.addTab(recentContactSpec);
-
tabHost.addTab(contactBookSpec);
-
tabHost.addTab(smsMessageSpec);
-
tabHost.addTab(settingSpec);
-
tabHost.setCurrentTab(1);
-
}
这个我没有写Demo,也就不提供详细的Demo了,不过还是截个图吧
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://img-blog.csdnimg.cn/img_convert/430811423512f2fbdbb9b14e41d15b58.jpeg)
结语
- 现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。
- 音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。
- 要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且
- OpenCV/OpenGl/这些又是图像处理必备知识,下面这些我都是当年自己搜集的资料和做的一些图,因为当年我就感觉视频这块会是一个大的趋势。所以提前做了一些准备。现在拿出来分享给大家。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
中…(img-9edGE7Bv-1711766043621)]
[外链图片转存中…(img-YxLKbwBU-1711766043621)]