public class list extends BmobObject {
private String name;
private BmobFile icon;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BmobFile getIcon() {
return icon;
}
public String getIconUrl(){
return icon.getFileUrl();
}
public void setIcon(BmobFile icon) {
this.icon = icon;
}
}
其中类中的BmobFile对应表中的File,代码块中的getIconUrl()方法用来获取图片的url。
3.3在项目中导入ImageLoader框架
第一种方法:导入imageloader的jar包
第二种方法:在Android Studio中导入依赖使用快捷键Alert+ctrl+shift+s,然后点击Dependencies再点击右面的“+”号选择“Library dependency”,把com.nostra13.universalimageloader:universal-image-loader:1.9.5复制在输入框中。
缓存图片配置(初始化ImageLoader)
imageLoader.init(ImageLoaderConfiguration.createDefault(MainActivity.this));
3.4编写ListView适配器
以下代码是对ListView适配器进行的编写,如果想要了解详细的ListView适配器请点击链接[
点击跳转到ListView适配器详细编写博客]( )
实例化ImageLoader对象
// 创建ImageLoader对象
private ImageLoader imageLoader = ImageLoader.getInstance();
主页面的布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
xmlns:app=“http://schemas.android.com/apk/res-auto”
xmlns:tools=“http://schemas.android.com/tools”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:paddingLeft=“16dp”
android:paddingRight=“16dp”
android:paddingBottom=“16dp”
android:paddingTop=“16dp”>
<ListView
android:id=“@+id/main_list_view”
android:layout_width=“match_parent”
android:layout_height=“match_parent”>
列表每项布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“100dp”>
<RelativeLayout
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:layout_margin=“10dp”>
<ImageView
android:id=“@+id/title_pic”
android:layout_width=“80dp”
android:layout_height=“60dp”
android:layout_centerVertical=“true”
android:layout_alignParentLeft=“true”
android:src=“@mipmap/ic_launcher”/>
<TextView
android:id=“@+id/title_content”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:textSize=“16sp”
android:layout_marginLeft=“10dp”
android:layout_toRightOf=“@id/title_pic”
/>
适配器编写
//适配器用来进行视图与数据的适配作用
public class NewListAdapter extends BaseAdapter {
private List lists= new ArrayList<>();
public NewListAdapter(List list) {
this.lists=list;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = new ViewHolder();
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.item_news_list, null);
viewHolder.titleContent = (TextView) convertView.findViewById(R.id.title_content);
viewHolder.icon = (ImageView) convertView.findViewById(R.id.title_pic);
convertView.setTag(viewHolder);
}else {
viewHolder = (ViewHolder) convertView.getTag();
}
// 创建DisplayImageOptions对象并进行相关选项配置
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_launcher_background)// 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.ic_launcher_background)// 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.ic_launcher_background)// 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(true)// 设置下载的图片是否缓存在内存中
.cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中
.displayer(new RoundedBitmapDisplayer(20))// 设置成圆角图片
.build();// 创建DisplayImageOptions对象
// 使用ImageLoader加载图片
imageLoader.displayImage(lists.get(position).getIcon().getFileUrl(),viewHolder.icon);
viewHolder.titleContent.setText(lists.get(position).getName());
return convertView;
}
public class ViewHolder{
TextView titleContent;
ImageView icon;
}
}
其中displayImage(参数1,参数2)方法用来加载图片,参数1为想要加载图片的url(图片的url通过getFileUrl()方法获取),参数2为ImageView控件。
重写onDestroy()方法回收缓存在内存中的图片
@Override
protected void onDestroy() {
// 回收该页面缓存在内存中的图片
imageLoader.clearMemoryCache();
super.onDestroy();
}
3.5批量的从Bmob云后端的数据库获取数据
//查询所有数据
public void queryPage(){
BmobQuery query = new BmobQuery<>();
//查询存在“objectId”字段的数据。
query.addWhereExists(“objectId”);
//获取查询数据
query.findObjects(new FindListener() {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。
最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
【Android核心高级技术PDF文档,BAT大厂面试真题解析】
【算法合集】
【延伸Android必备知识点】
【Android部分高级架构视频学习资源】
Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!
心高级技术PDF文档,BAT大厂面试真题解析】**
[外链图片转存中…(img-THVIInbj-1711649945342)]
【算法合集】
[外链图片转存中…(img-BYDQOzJl-1711649945343)]
【延伸Android必备知识点】
[外链图片转存中…(img-fVfSGL1D-1711649945343)]
【Android部分高级架构视频学习资源】
Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!