GridView的使用与跑马灯效果

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

一 GridView的使用

        gridView和ListView一样都是一种列表显示的视图控件,ListView是竖直列表的形式来展现,常常用于新闻条目这种.而gridView是可以按照多少列来横向列表的形式来展现的.两者的使用十分相似.

      1.创建GridView的控件

            在你的布局文件中创建gridView控件如下:

             

<GridView
            android:id="@+id/gv_home"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:numColumns="3"
            android:verticalSpacing="20dp"
             >
 

    </GridView>

  这里指定每列显示3个,同时使用权重来设置高度布局,设置layout_height为0dp来提高性能,verticalSpacing设置竖直间距20dp

 2.Item的样式

    创建gridView内部的每个Item的样式了,新建一个自定义的样式文件home_list_item.xml,写入item的布局,如下

    

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:gravity="center"
>


    <ImageView
            android:id="@+id/iv_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/home_apps"

    />

    <TextView
            android:id="@+id/tv_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000"
            android:layout_marginTop="5dp"
            android:text="手机防盗"
    />

</LinearLayout>

一张图片和一个文字说明,标识一个功能Item的样式LinearLayout 中的android:gravity="center"是为了让item能居中显示

 

 3.编写Activity代码

  我们需要让Item样式动态展示到安卓设备上,需要写代码逻辑来实现,如下:

  

 private String mItems[]= new String[]{"手机防盗", "通讯卫士", "软件管理", "进程管理",
            "流量统计", "手机杀毒", "缓存清理", "高级工具", "设置中心"};
    private int mPics[] = new int[]{ R.mipmap.home_safe,
            R.mipmap.home_callmsgsafe, R.mipmap.home_apps,
            R.mipmap.home_taskmanager, R.mipmap.home_netmanager,
            R.mipmap.home_trojan, R.mipmap.home_sysoptimize,
            R.mipmap.home_tools, R.mipmap.home_settings};



 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        gvHome = findViewById(R.id.gv_home);
        gvHome.setAdapter(new HomeAdapter());
    }


 class HomeAdapter extends BaseAdapter{

        @Override
        public int getCount() {
            return mItems.length;
        }

        @Override
        public Object getItem(int position) {
            return mItems[position];
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
           View view =  View.inflate(HomeActivity.this,R.layout.home_list_item,null);
            ImageView iv_item = view.findViewById(R.id.iv_item);
            TextView tv_item = view.findViewById(R.id.tv_item);
            iv_item.setImageResource(mPics[position]);
            tv_item.setText(mItems[position]);


            return view;
        }
    }

mItems和mPics标识的是动态展示到设备上的文字和图片,在onCreate方法中,我们创建了HomeAdapter用来填充样式,其中以mItems作为实例,getCount获取mItems总数,getItem和getItemId分别标识当前position的Item和ItemId.重要的是getView,我们在该方法中给每个iv_item和tv_item附上对应的值,因为我们有九个item,所以该方法会调用九次.至此,我们了解了gridVIew的使用.

二.跑马灯的效果

      完成改功能需要singline和ellipsize两个属性,但是仅仅这两个属性还不行,我们需要他能获取焦点,代码如下:

     

<TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:text="手机卫士太NB了,手机卫士太NB了,手机卫士太NB了,手机卫士太NB了,"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:textColor="#000"
            android:textSize="18sp"

    />

 除了刚刚说的两个参数,还有android:focusable="true",android:focusableInTouchMode="true"这两个要设置为true,当然你可以自定义View,在代码里面保证你的focus始终为true.

WPF魅力无限:打造华丽的走马灯效果!.NET 在WPF(Windows Presentation Foundation)中,我们可以通过使用.NET框架的强大功能来实现一个令人惊叹的走马灯效果。本文将详细介绍如何使用WPF和.NET来创建一个炫酷的走马灯效果,同时附上相应的源代码。在WPF(Windows Presentation Foundation)中,我们可以利用.NET框架的强大功能来实现一个引人注目的走马灯效果。本文将详细介绍如何利用WPF和.NET来创建一个令人惊叹的走马灯效果,并提供相应的源代码。中我们可以定义每个项目的外观。 阅读详情

相关推荐

wpf跑马灯图片翻转效果WpfMarquee

wpf跑马灯图片翻转效果WpfMarquee 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软 主要包括C# ASP.NET SQLDBA 源码 毕业设计 开题报告 答辩PPT等

WinForm实现状态栏跑马灯效果的方法示例

主要介绍了WinForm实现状态栏跑马灯效果的方法,涉及WinForm控件结合时间函数动态操作元素属性的相关技巧,需要的朋友可以参考下

gridview跑马灯

直接在xml引用的自定义跑马灯效果实现了点击,暂停、开始动画效果实现了文字和图片的跑马灯效果

关于在listview或者gridview等控件中实现跑马灯效果的最好方式

1.在listview或者gridview等控件中实现跑马灯效果的最好方式是在getview中实现setSelected方法(设置为true),网上说的那种自定义TextVew,在isFocu中返回true的方法,会存在焦点被抢占问题,如果页面中有EditText,则无法获取焦点,无法弹出软键盘。 

u013835855的专栏 618

WPF中DataGrid自动滚动,跑马灯效果实现

前端: <DataGrid x:Name="dg" AutoGenerateColumns="False" > <DataGrid.Columns> <DataGridTemplateColumn Width="200" > <DataGridTemplateColumn.CellTemplate> <Dat

Coder 2875

WPF 实现跑马灯效果的Label控件,数据绑定方式实现

项目中需要使用数据绑定的方式实现跑马灯效果的Label,故重构了Label控件;具体代码如下 using System; using System.Timers; using System.Windows; using System.Windows.Controls; using Tool; namespace iMasteRayClient.View.ViewUnit {

msst1234的专栏 4460

GridView 中TextView的跑马灯效果

<TextView android:id="@+id/game_info_gname" android:layout_width="78dp" android:layout_height="wrap_content" android:focusable="true" android:focusableInTouchMode="true" android:marqueeRepeatLim

boliu123的专栏 2668

Gridview实现textview的跑马灯效果

[java] view plain copy  print? 默认是下面的属性添加TextView中:   android:ellipsize="marquee"                   android:focusableInTouchMode="true"                   android:gravity="center"    

学无止境 1070

android在Gridview实现Textview跑马灯效果

默认是下面的属性添加TextView中: android:ellipsize="marquee" android:focusableInTouchMode="true" android:gravity="center" android:marqueeRepeatLimit="marquee_forev

csh159的专栏 3120

ListView,GridView中的textView实现跑马灯效果

普通的跑马灯一般只要设置: <item name="android:singleLine">true</item> <item name="android:ellipsize">marquee</item> <item name="android:focusable">true</item> <item ...

沐的博客 6754

Android ListView/GridView 等控件使用文字跑马灯效果

Android

lanlande_vip的专栏 617

非常好用的gridview(asp.net,ajax效果)

近期在做个信息系统,ASP.NET 4.0+SQL server2008,VS自带的gridview非常不好用,在国外论坛上寻觅无数,终于找到这个比较实用的gridview实例,程序非常简单,但增删改的功能都具备,而且是Ajax无刷新操作,可移植性强,适合收藏使用。值得你花5分:)

C#.NET GridView功能各种界面效果源代码超实用

GridView用了这么久,还不知道还有这么多功能没有使用过,可以进行排序,表头固定,页面新增修改,做表尾统计等。有详细源代码

WPF实现简单的跑马灯效果

最近项目上要用到跑马灯效果,和网上不太相同的是,网上大部分都是连续的,而我们要求的是不连续的。 也就是是,界面上就展示4项(展示项数可变),如果有7项要展示的话,则不断的在4个空格里左跳,当然,衔接上效果不是很好看。 然后,需要支持点击以后进行移除掉不再显示的内容。 效果如下: 思路大致如下: 1、最外层用一个ViewBox,为了可以填充调用此控件的地方,这样可以方便自动拉伸 代码如下:<Viewbox x:Name=”viewbox_main” Height=”{Binding Path=ActualHeight}” Width=”{Binding Path=ActualWidth}”

在ListView或GridView使用跑马灯滚动效果实现的问题。

一般情况下TextView实现跑马灯效果只要设置一些几个属性即可实现了。 android:singleLine="true“//只显示单行         android:ellipsize="marquee"       //实现滚动效果           android:focusable="true"    //获取焦点,获取不到焦点是无法实现跑马灯滚动的   而且文字的长度大于控

huningjun的专栏 1405

手机安全卫士第二课---主页面布局学习 跑马灯实现

布局 LinearLayout 中 textView -textView -GridView     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical">

sinat_34174744的博客 582

手机安全卫士------主页面(HomeActivity)

效果图:技术点: 1.通过继承BaseAdapter的方式,自定义一个适配器,用来存储GridView显示的内容 2.跑马灯效果实现 3.自定义style风格自定义适配器1.在HomeActivity的layout文件中,添加一个GridView控件。并设置numColumns=3 , 即每行显示3列。2.在layout目录下,创建一个gridview_item_layout布局文件,文件中

一只正在一步一步往上爬的Android小白 1254

文字跑马灯效果

TextView android:layout_width="50px"         android:layout_height="wrap_content"         android:textColor="@android:color/white"           android:ellipsize="marquee"           android:focusable="tr

hnwangdan的专栏 722

Android手机卫士主界面MainActivity的UI实现

主界面MainActivity 主界面的设计是一个市面上常用界面-九宫格,使用gridview来完成,现在我们来看一下它的布局 布局文件如下:activity_main.xml     LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://s

an13531829360的博客 1056
上一篇: 安卓7.0下载更新并且自动跳转到安装页面
下一篇: 自定义View
K_122
博客等级 码龄11年 11粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值