专栏首页VB小源码安卓开发之B4A(VB)自定义视图列表(仿QQ空间说说)

安卓开发之B4A(VB)自定义视图列表(仿QQ空间说说)

今天我们来一步步开发一个自定义列表视图(仿QQ空间说说).

一、首先,我们创建一个B4A应用,设置好相关的属性;

1.1.设置包名,随意即可

1.2.设置应用图标(先把文件放到应用目录files下),也是你喜欢咯

1.3.设置应用版本信息等属性(自己根据下图注释修改即可)

二、应用相关类库

xCustomListView  
XUI
JavaObject

三、主界面布局设置

3.1.添加上边引用的类库视图

3.2.把图纸拉到覆盖底部深灰色部分

3.3.设置视图的相关属性(看图)

3.4.保存布局(main)主布局

四、列表界面布局设置(仿QQ空间说说)

4.1.创建一个新的布局

4.2.新建变体类型(320x200),把原来的变体类型删除掉,然后保存

4.3.然后往新布局里面添加控件

五、书写代码

#Region  Project Attributes 
  #ApplicationLabel: 列表视图
  #VersionCode: 1
  #VersionName: 
  'SupportedOrientations possible values: unspecified, landscape or portrait.
  #SupportedOrientations: portrait
  #CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
  #FullScreen: False
  #IncludeTitle: False
#End Region

Sub Process_Globals
  Private xui As XUI

End Sub

Sub Globals
  Private L_bbs As B4XView
  Private L_cont As B4XView
  Private L_good As B4XView
  Private L_more As B4XView
  Private L_share As B4XView
  Private L_subtitle As B4XView
  Private L_title As B4XView
  Private L_view As B4XView
  Private logo_img As B4XView
  Private ls_v As CustomListView
End Sub

Sub Activity_Create(FirstTime As Boolean)
  Activity.LoadLayout("main")
  add_listview
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub add_listview
  ls_v.Clear
  Dim i As Int=0
  DateTime.DateFormat="yyyy-MM-dd HH:mm:ss"
  ''创建列表
  For i = 0 To 29
    ls_v.Add(Create_card("VB小源码" & i,DateTime.Date(DateTime.Now),"内容",i+1,"logo.jpg"),"")
  Next
  
End Sub

''创建卡片
Private Sub Create_card(Title As String, subtitle As String, Content As String,ct As Int,Image As String) As Panel
  Dim p As B4XView = xui.CreatePanel("")
  p.SetLayoutAnimated(0, 0, 0, ls_v.AsView.Width, 200dip)
  p.LoadLayout("ls_ss")
  L_title.Text = Title
  L_subtitle.Text = subtitle
  'L_cont.Text=Content
  L_view.Text="浏览" &  ct &"次"
  SetColorStateList(L_view, xui.Color_LightGray, L_view.TextColor)
  SetColorStateList(L_good, xui.Color_LightGray, L_good.TextColor)
  SetColorStateList(L_cont, xui.Color_LightGray, L_cont.TextColor)
  SetColorStateList(L_share, xui.Color_LightGray, L_share.TextColor)
  SetColorStateList(L_bbs, xui.Color_LightGray, L_bbs.TextColor)
  SetColorStateList(L_more, xui.Color_LightGray, L_more.TextColor)
  logo_img.SetBitmap(xui.LoadBitmapResize(File.DirAssets, Image, logo_img.Width, logo_img.Height, True))
  Return p
End Sub

''设置标签按钮状态
Sub SetColorStateList(Btn As Label,Pressed As Int,Enabled As Int)
  Dim States(2,1) As Int
  States(0,0) = 16842919    
  States(1,0) = 16842910   
  Dim CSL As JavaObject
  CSL.InitializeNewInstance("android.content.res.ColorStateList",Array(States,Array As Int(Pressed, Enabled)))
  Dim B1 As JavaObject = Btn
  B1.RunMethod("setTextColor",Array As Object(CSL))
End Sub


Sub L_view_Click
  
End Sub

Sub L_title_Click
  
End Sub

Sub L_subtitle_Click
  
End Sub

Sub L_share_Click
  
End Sub

Sub L_more_Click
  
End Sub

Sub L_good_Click
  
End Sub

Sub L_cont_Click
  
End Sub

Sub L_bbs_Click
  
End Sub

六、demo下载

https://vbee.lanzous.com/iSHrOdo4fxe

本文分享自微信公众号 - VB小源码(vb_xym),作者:VB小源码

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VBA 发票数据解析

    巴西_prince
  • B4A 调用谷歌翻译api进行翻译

    Google 翻译是谷歌公司提供一项免费的翻译服务,可提供103 种语言之间的即时翻译,支持任意两种语言之间的字词、句子和网页翻译。可分析的人工翻译文档越多,译...

    巴西_prince
  • B4A VB扫码数据提取V1.0 程序包含扫码,TXT文件保存,TXT文件分享,文件批量删除,时间操作,发票数据等技巧

    本程序包含二维码,条形码扫码提取其中的数据,通过提取到的数据保存为TXT文件,通过保存的TXT文件分享到QQ微信等社交软件,批量删除本地文件,时间操作等技巧都集...

    巴西_prince
  • B4A VB扫码数据提取V1.0 程序包含扫码,TXT文件保存,TXT文件分享,文件批量删除,时间操作,发票数据等技巧

    本程序包含二维码,条形码扫码提取其中的数据,通过提取到的数据保存为TXT文件,通过保存的TXT文件分享到QQ微信等社交软件,批量删除本地文件,时间操作等技巧都集...

    巴西_prince
  • The Clean Architecture in PHP 读书笔记(九)

    这是clean architecture的第9篇,也是具体案例的第一篇,本篇开始将会运用之前学到的知识,来构建一个小型的php应用。

    zhuanxu
  • 区块链基础知识 (一)

    区块链技术让参与的系统中任意多个节点,通过密码学算法把一段时间系统内的全部信息交流数据统计和记录到一个数据库(Block)中,并且生成该数据块的指纹用于链接(C...

    汐楓
  • Html5 Web的5中离线存储方式之localStorage

    在HTML5越来越流行的今天,如果你还不知道离线存储,那就说明你落后了很多。 HTML5的离线存储方式有多种:Web SQL Database、LocalS...

    业余草
  • python作业

        if (name1 in name and passwd1 in passwd):

    py3study
  • Kingfisher源码阅读(三)

    上一篇地址:Kingfisher源码阅读(二) 第一篇地址:Kingfisher源码阅读(一)

    Sheepy
  • 【php增删改查实例】- 第二十八节 查看地图的功能实现

    剽悍一小兔

扫码关注云+社区

领取腾讯云代金券