Android开发 跑马灯效果的制作
ListView中的TextView实现跑马灯效果

09. <ListView android:id="@+id/list" android:layout_height="wrap_content"
10.
android:layout_width="fill_parent" android:focusable="true"
11.
android:background="@android:color/transparent"></ListView>
58.
}
59.
if (index == position) {
60.
61.
convertView.setBackgroundColor(Color.GREEN);
62.
//此处就是设置textview为选中状态,方可以实现效果
29.
list.add(new Channel("12:55",
30.
"A不喜欢吃鸡蛋,每次发了鸡蛋都给B吃。刚开始B很感谢,久而久之便习惯
了。习惯了,便理所当然了"));
31.
list.add(new Channel(
32.
"14:30",
33.
"于是,直到有一天,A将鸡蛋给了C,B就不爽了。她忘记了这个鸡蛋本来就
02.
03. <?xml version="1.0" encoding="utf-8"?>
04. <LinearLayout xmlns:android="/apk/res/andrntation="vertical" android:layout_width="fill_parent"
AndroidTextView实现跑马灯效果的方法

AndroidTextView 实现跑马灯效果的⽅法本⽂为⼤家分享⼀个⾮常简单但⼜很常⽤的控件,跑马灯状态的TextView 。
当要显⽰的⽂本长度太长,⼜不想换⾏时⽤它来显⽰⽂本,⼀来可以完全的显⽰出⽂本,⼆来效果也挺酷,实现起来超级简单,所以,何乐不为。
先看下效果图:代码实现TextView ⾃带了跑马灯功能,只要把它的ellipsize 属性设置为marquee 就可以了。
但有个前提,就是TextView 要处于被选中状态才能有效果,看到这,我们就很⾃然的⾃定义⼀个控件,写出以下代码:12345678910111213141516171819202122public class MarqueeTextView extends TextView { public MarqueeTextView(Context con) { super(con);}public MarqueeTextView(Context context, AttributeSet attrs) {super(context, attrs);} public MarqueeTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); }@Overridepublic boolean isFocused() {// TODO Auto-generated method stubif(getEditableText().equals(TruncateAt.MARQUEE)){ return true; } return super.isFocused(); }}重写了isFocused ⽅法,并进⾏判断,只有设置了marqueen 属性的才保持选中状态,否则它就跟普通TextView ⼀样。
接下来就可以直接使⽤了,看下布局:1234567<LinearLayout xmlns:android="/apk/res/android "xmlns:tools="/tools "android:layout_width="match_parent"891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253android:layout_height="match_parent"android:orientation="vertical"><FrameLayout android:id="@+id/titlebar_layout" android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#39ac69" ><LinearLayoutandroid:layout_width="match_parent" android:layout_height="50dp" android:background="#ffffff" android:gravity="center_vertical"android:orientation="horizontal" ><ImageViewandroid:id="@+id/home_location_iv" android:layout_width="25dp" android:layout_height="27dp" android:layout_marginLeft="10dp"android:scaleType="fitXY"android:src="@drawable/icon_place" /><com.lxj.marqueetextview.MarqueeTextViewandroid:id="@+id/home_location_tv" android:layout_width="0dp" android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:layout_weight="1" android:ellipsize="marquee" android:focusable="true"android:focusableInTouchMode="true"android:gravity="center"android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:singleLine="true" android:text="正在定位..."android:textColor="#39ac69"android:textSize="18sp" /><ImageView android:id="@+id/home_search_iv" android:layout_width="25dp" android:layout_height="27dp"android:layout_marginRight="10dp"android:scaleType="fitXY"android:src="@drawable/icon_place" /> </LinearLayout></FrameLayout></LinearLayout>要注意两点ellipsize 属性要设置为”marquee”,⾏数属性即singleLine 要设置为true 。
跑马灯制作原理

跑马灯制作原理跑马灯(也称滚动字幕)是一种广告效果很好的Web元素。
制作跑马灯需要用到一些基础的HTML、CSS、和JavaScript知识。
下面我们将从制作原理、制作步骤和实现代码三个方面来介绍跑马灯的制作过程。
制作原理跑马灯是通过JavaScript脚本实现网页元素的动态滚动来实现的。
具体来说,我们可以通过以下步骤来实现跑马灯效果:1. 在HTML中创建一个具有足够宽度的容器。
2. 我们将需要滚动的内容放入容器中,并将其设置为一个很大的块。
3. 使用JavaScript脚本来实现间断性地将内容块从容器的左侧向右移动,然后重复这个过程,以实现跑马灯效果。
制作步骤1. 首先,我们需要在HTML中创建一个容器,该容器将用于容纳需要滚动的内容。
我们可以使用以下代码来创建一个具有50%宽度和100px 高度的容器。
<div id="container" style="width:50%;height:100px;"></div>2. 接下来,我们将需要用到一些CSS来设置容器的基本样式。
我们可以使用以下CSS代码来设置容器的背景颜色、边框和控制文字的样式:#container {background-color: #000000;border: 2px solid #ffffff;overflow: hidden;}3. 我们也需要向容器中添加滚动内容的HTML代码。
在这个示例中,我们将使用一些简单的文本作为滚动内容。
我们可以使用以下HTML代码来添加这些内容:<div id="content" style="position: relative; width: 200%;">这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容,这是滚动内容。
Android跑马灯实现的三种方式

Android跑马灯效果实现的三种方式1、使用系统默认的跑马灯效果实现方法:(1)在xml文件加入一个TextView,并设置属性如下,其中红色的部分是最关键部分<TextViewandroid:id="@+id/textView_showmsg_circle"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:textColor="#ff0000"android:singleLine="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:background="#ffffff"android:textSize="20dp"android:focusable="true"android:focusableInTouchMode="true"android:scrollHorizontally="true"/>(2)通过设置xml中的属性,该TextView已经具备了跑马灯的效果。
但是,此种情况下,只有当TextView获取到焦点时,才能出现跑马灯效果,一旦丢失焦点,跑马灯效果不再,控件从开始显示一定宽度的字符。
其效果如下图例所示。
主程序代码:final TextViewtvCircle = (TextView)findViewById(R.id.textView_showmsg_circle);tvCircle.setText("2.2.1. 紧急通知类消息紧急通知类型的消息主要指恶劣天气警报或政府部门授权下发的紧急事件通知。
Android开发 跑马灯效果的制作

自动完成文本框
• 我们在上网进行搜索的时候,有时会将和输入相关的选项全部列举列出 来供用户选择,该组件的功能和它类似。这就是AutoCompleteTextView。
在该组件的显示中,我们要使用到适配器(绑定相关数据),图示如下:
自动完成文本框
• • 要实现搜索,必须要在内部绑定数据。 实现步骤
</shape> 形状四种 rectangle 矩形(常用), oval 椭圆, line 线性, ring 圆形 颜色 圆角 solid ,gradient (只能2选1) corners
ImageView 属性
1 android:background="@drawable/gril" 设置显示的图片
注意:
onCreateDialog方法要在被显示的方法调用后才会被
回调。
标题栏进度条
创建步骤如下:
1、获得进度条(注意:设置界面布局之前) requestWindowFeature(Window.FEATURE_INDETE RMINATE_PROGRESS); 2、进度条控制方法 a、在窗口标题栏显示进度条
自定义EditText
在项目的开发中,我们有时可能会使用到像如下形式的输入框
那么我们如何完成这种形式的输入框呢? 我们使用的是android:background属性来完成的,它既可以是输入框背
景颜色的设定,也可以是一种绘制形状的引用,这种绘制的形状我们可
以借助于android内部来完成,使用XML配置来进行不同形状的加工,步 骤如下:
•
• • • •
1.定义数据内容
如 "java课程","java简介","java视频","java开发","jsp详解","jsp介绍","jsp开发" 2.构建适配器 适配器作用:将数据和控件绑定显示 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, yout.simple_dropdown_item_1line, data);//将数据设置到适配器
开发板跑马灯实验及步骤

5、编译该工程,成功后将生成映像文件‘helloarm.axf’,打开AXD,装载映像文件‘helloarm.axf’。
6、运行程序,观察结果。
四、实验实现控制所使用的程序
main程序:
#define rGPMCON (*(volatile unsigned *)(0x7F008820))
#define rGPMDAT (*(volatile unsigned *)(0x7F008824))
#define rGPMPUD (*(volatile unsigned *)(0x7F008828))
void msDelay(int time)
{
volatile unsigned int i,j;
while (1)
{
for(i=0; i<ຫໍສະໝຸດ ; i++){
rGPMDAT = ~(1<<i);
msDelay(10);
}
}
}
void LedMain(void)
{
GPIO_Init();
LedTest();
}
Init程序:
IMPORTMain
AREA |C$$code|, CODE, READONLY
用程序通过I/O口实现5个跑马灯的控制
一、实验目的
1、通过实验了解实验系统的结构与使用方法;
2、通过实验了解开发板的电路结构和跑马灯程序的原理;
3、通过实验熟悉开发板对跑马灯控制的实现方法。
二、实验设备及材料
1、飞凌6410开发板及连接开发板和计算机的线路;
2、“DNW.exe”和“Code Warrior for RVDS”等相应的的软件;
android中实现跑马灯效果以及AutoCompleteTestView与MultiAu。。。

android中实现跑马灯效果以及AutoCompleteTestView与MultiAu。
跑马灯效果1.⽤过属性的⽅式实现跑马灯效果属性:android:singleLine="true" 这个属性是设置TextView⽂本中⽂字以省略号的形式收缩⽂本内容android:focusable="true":启动跑马效果<TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:text="这是跑马灯实现,我是跑马灯,我要跑起来了,跑起来了跑呀跑呀" />那我们定义多个TextView实现跑马灯看看有什么效果?我们可以在activity_main.xml中加多⼀个TextView控件,可以看到如下显⽰很显然当我们定义多个TextView时候第⼆个TextView着跑不起来了,所以这很显然不能满⾜我们的需求这时我们可以⾃定义的⽅式来实现,这样就灵活的操作TextView了这样就可以看上去⽅便许多2.⾃定义跑马灯实现步骤:1.定义⼀个普通类⽤于继承TextView控件对象2.重写相应的构造⽅法和isFocused()⽅法public class MyTextView extends TextView {public MyTextView(Context context) {super(context);}public MyTextView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}public MyTextView(Context context, AttributeSet attrs) {super(context, attrs);}@Override@ExportedProperty(category = "focus")public boolean isFocused() {//将其返回值设置为truereturn true ;}} 3.引⽤我们⾃定义的控件<com.example.runmudeng.MyTextViewandroid:id="@+id/text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:text="这是跑马灯实现,我是跑马灯,我要跑起来了,跑起来了跑呀跑呀" /> <com.example.runmudeng.MyTextViewandroid:layout_below="@+id/text_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:text="这是跑马灯实现,我是跑马灯,我要跑起来了,跑起来了跑呀跑呀" /> 4.检查结果搜索提⽰快速查找AutoCompleteTextView控件在很多apk中都运⽤了这个功能操作,就像百度上当你输⼊⼀个android单词着会显⽰下拉提⽰供你选择点击,那如何实现下⾯图⽚的显⽰的那个功能呢?我们着需要运⽤⼀个AutoCompleteTextView控件进⾏实现这个功能操作1.添加控件功能:可以动态的匹配输⼊的内容,可以根据显⽰匹配热门信息属性: android:completionThreshold="3" :这个属性是设置当你输⼊到3个字符的时候将列出提⽰内容<AutoCompleteTextViewandroid:completionThreshold="3"android:id="@+id/autoCompleteTextView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="请输⼊你要查询的内容"></AutoCompleteTextView> 2.实现操作1)⾸先我们初始化控件 2)定义⼀个适配器对象3)初始化数据源 4)将适配器赋值到控件中public class MainActivity extends Activity {//初始化⼀个AutoCompleteTextView对象private AutoCompleteTextView act;//初始化数据源private String[] data = {"android","onClick","android2","Struts","Spring",};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);/*** 1实例化控件对象* 2需要定义⼀个适配器对象* 3初始化数据源* 4.将适配器赋值到控件对象中*/act = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,yout.simple_expandable_list_item_1,data);act.setAdapter(adapter);}} MultiAutoCompleteTextView控件功能:和上⾯的AutoCompleteTextView功能是⼀样的,只是该控件的功能更强⼤,它⽀持多选择操作属性: android:completionThreshold="3" :这个属性是设置当你输⼊到3个字符的时候将列出提⽰内容1该控件⽀持多条件选择所以它要设置我们要选择时定义⼀个分割符,⽽这分割符是内部提供的⽅法进⾏操作这次同样的在该Android⼯程下的activity_main.xml中添加另外的⼀个控件MultiAutoCompleteTextView通过这个控件可以实现多搜索选择操作<MultiAutoCompleteTextViewandroid:completionThreshold="3"android:id="@+id/multiAutoCompleteTextView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/autoCompleteTextView1"android:hint="请选择多个你要查询的内容" ></MultiAutoCompleteTextView>2.实现同样操作,在MainActivity.java中获取该控件的对象,然后操作步骤如上1)⾸先我们初始化控件 2)定义⼀个适配器对象3)初始化数据源 4)将适配器赋值到控件中 5)设置分割符public class MainActivity extends Activity {//初始化⼀个AutoCompleteTextView对象private AutoCompleteTextView act;//初始化数据源private String[] data = {"android","onClick","android2","Struts","Spring",};//初始化⼀个MultiAutoCompleteTextView对象private MultiAutoCompleteTextView mact ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);/*** 1实例化控件对象* 2需要定义⼀个适配器对象* 3初始化数据源* 4.将适配器赋值到控件对象中*/act = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,yout.simple_expandable_list_item_1,data);act.setAdapter(adapter);/*** 1实例化控件对象* 2需要定义⼀个适配器对象* 3初始化数据源* 4.将适配器赋值到控件对象中* 5设置分隔符*/mact = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1);ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,yout.simple_expandable_list_item_1,data);mact.setAdapter(adapter2);mact.setTokenizer(new maTokenizer());}}ToggleButton控件1.什么是ToggleButton:可以通过toggle这个单词就指定,就像开关操作,当你点击⼀下则开,点击⼀下着关状态:分为选中状态和未选中状态 ,并且为不同的状态设置不同的显⽰⽂本内容属性:android:checked=" " textOff="" textOn=""check属性:默认是falsetextOff,textOn:是设置你开关值1.⾸先我们在布局⽂件中添加⼀个控件ToggleButton<ToggleButtonandroid:id="@+id/toggleButton1"android:layout_width="match_parent"android:layout_height="wrap_content"android:textOn="开"android:textOff="关"/>2.编写代码获取你点击的状态public class MainActivity extends Activity {//声明⼀个ToggleButton对象private ToggleButton togglebt ;private ImageView imgView ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);togglebt = (ToggleButton) findViewById(R.id.toggleButton1);imgView = (ImageView) findViewById(R.id.img);//给toggleButton绑定⼀个事件togglebt.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {//获取当前点击时是否为trueif(isChecked){imgView.setBackgroundResource(R.drawable.on);}else{imgView.setBackgroundResource(R.drawable.off);}}});}}CheckBox复选框<CheckBoxandroid:checked="true"android:id="@+id/checkBox1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="CheckBox" />RadioGroup和RadioButton 实现底部选择栏<RadioGroupandroid:id="@+id/radioGroup1"android:layout_width="wrap_content"android:layout_height="wrap_content" ><RadioButtonandroid:id="@+id/radio0"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:text="RadioButton" /><RadioButtonandroid:id="@+id/radio1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="RadioButton" /></RadioGroup>说起RadioGroup在实际的开发中运⽤⾮常⼴,在很多的apk中都基本上运⽤了该组件实现了底部选栏的效果接下来⼩编带⼤家实现微信底部选栏1.我们定义⼀个布局⽂件为activity_footer.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal" ><RadioGroupandroid:id="@+id/radioGroup1"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:paddingTop="5dp"android:paddingBottom="5dp"android:background="@drawable/group_buton_nomal"><RadioButtonandroid:drawableTop="@drawable/_mainframe"android:id="@+id/radio0"android:checked="true"android:text="@string/_weixi_text"style="@style/radio_group"android:textColor="@drawable/_mainframe"/><RadioButtonandroid:drawableTop="@drawable/content"android:id="@+id/radio1"android:text="@string/_str_address"style="@style/radio_group"android:textColor="@drawable/content"/><RadioButtonandroid:drawableTop="@drawable/_discover"android:id="@+id/radio2"android:text="@string/_str_find"style="@style/radio_group"android:textColor="@drawable/_discover" /><RadioButtonandroid:drawableTop="@drawable/_me"android:id="@+id/radio3"android:text="@string/_str_me"style="@style/radio_group"android:textColor="@drawable/_me"/></RadioGroup></LinearLayout>我们可以通过RadioGroup组件中的⼀个属性android:orientation="horizontal"设置该组件中的内容为⽔平排列然后我将⼀些公共的样式抽取到⼀个style.xml中<style name="radio_group"><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item><item name="android:layout_weight">1</item><item name="android:button">@null</item><item name="android:gravity">center</item><item name="android:textSize">10dp</item></style>如何将⼀个按钮变化为⼀个图⽚呢?很简单可以通过 android:button="@null"/>这时你可以看到如下的布局了是不是很快呢??2. 这时我们要设置当你点击的时候可以切换图⽚和字体颜⾊,我们需要定义⼀个xml来帮我实现该效果1)我们在drawable⽬录下分别为这四个案例设置xml⽂件xxx.xml内容<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android" ><!-- 点击的时候改变图⽚,并且字体设置颜⾊ --><item android:state_checked="true" android:drawable="@drawable/tabbar_discoverhl" android:color="@color/green"/><item android:drawable="@drawable/tabbar_discover" android:color="@color/grey"/></selector>当你点击时为true将设置有颜⾊的图⽚和将字体改为绿⾊,当你编写完这4个⽂件之后,这时候你要分别在每个radioButton中引⽤这四个⽂件如:<RadioButtonandroid:drawableTop="@drawable/_me"//图⽚引⽤android:id="@+id/radio3"android:text="@string/_str_me"style="@style/radio_group"android:textColor="@drawable/_me"//字体引⽤/>恭喜你操作完成。
Android 纵向跑马灯滚动效果

Android 纵向跑马灯滚动效果像淘宝和京东都会有跑马灯的效果,今天给大家贡献下以前项目的一个demo。
我们先定义一个Bean文件,这个实体类文件主要包含标题,内容描述,以及还有跳转的链接。
LampBean[html] view plain copy print?在CODE上查看代码片派生到我的代码片public class LampBean implements Serializable {public String title;public String info;}接下来我们要去自定义一个LampView了,Lamp主要实现数据的接受,适配器填充数据,以及滚动实现,这里可以看出适配器模式在我们Android开发模式中用处的广泛,为了方便后面的数据的适配我们将数据源用泛型。
[html] view plain copy print?在CODE上查看代码片派生到我的代码片public abstract class BaseAutoScrollTextView<T> extends ListView implementsAutoScrollData<T> {private ArrayList<T> mDataList = new ArrayList<T>();private float mSize=16;private int mMax;private int position = -1;private int scroll_Y;private int mScrollY;private AutoScrollAdapter mAutoScrollAdapter = new AutoScrollAdapter();private OnItemClickListener mOnItemClickListener;private long mTimer = 1000;private Context mContext;protected abstract int getAdertisementHeight();private Handler handler = new Handler();Runnable runnable = new Runnable() {@Overridepublic void run() {// 开启轮播switchItem();handler.postDelayed(this, mTimer);}};public interface OnItemClickListener {public void onItemClick(int position);}public BaseAutoScrollTextView(Context context, AttributeSet attrs,int defStyle) {super(context, attrs, defStyle);this.mContext = context;mScrollY = dip2px(getAdertisementHeight());init();}public BaseAutoScrollTextView(Context context, AttributeSet attrs) { this(context, attrs, 0);}public BaseAutoScrollTextView(Context context) {this(context, null);}private void init() {this.setDivider(null);this.setFastScrollEnabled(false);this.setDividerHeight(0);this.setEnabled(false);}private int dip2px(float dipValue) {final float scale = mContext.getResources().getDisplayMetrics().density;return (int) (dipValue * scale + 0.5f);}private void switchItem() {if (position == -1) {scroll_Y = 0;} else {scroll_Y = mScrollY;}smoothScrollBy(scroll_Y, 2000);setSelection(position);position++;}private class AutoScrollAdapter extends BaseAdapter {@Overridepublic int getCount() {final int count = mDataList == null ? 0 : mDataList.size();return count > 1 ? Integer.MAX_VALUE : count;}@Overridepublic Object getItem(int position) {return mDataList.get(position % mMax);}@Overridepublic long getItemId(int position) {return position % mMax;}@Overridepublic View getView(final int position, View convertView,ViewGroup parent) {ViewHolder viewHolder;if (null == convertView) {viewHolder = new ViewHolder();convertView = LayoutInflater.from(mContext).inflate(yout.item_lamp_layout, null);viewHolder.mTitleView = (TextView) convertView.findViewById(_title);viewHolder.mInfoView = (TextView) convertView.findViewById(_info);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}T data = mDataList.get(position % mMax);initItemData(position, convertView, viewHolder, data);return convertView;}}private void initItemData(final int position, View convertView, ViewHolder viewHolder, T data) { viewHolder.mTitleView.setLayoutParams(new youtParams(youtParams.WRAP_CONTENT,dip2px(getAdertisementHeight())));viewHolder.mTitleView.setTextSize(mSize);viewHolder.mInfoView.setTextSize(mSize);viewHolder.mTitleView.setText(getTextTitle(data));viewHolder.mInfoView.setText(getTextInfo(data));convertView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {mOnItemClickListener.onItemClick(position % mMax);}});}static class ViewHolder {TextView mTitleView;// 标题TextView mInfoView;// 内容}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) { return false;}public void setData(ArrayList<T> _datas) {mDataList.clear();mDataList.addAll(_datas);mMax = mDataList == null ? 0 : mDataList.size();this.setAdapter(mAutoScrollAdapter);mAutoScrollAdapter.notifyDataSetChanged();}public void setTextSize(float _size){this.mSize=_size;}public void setOnItemClickListener(OnItemClickListener _listener) { this.mOnItemClickListener = _listener;}public void setTimer(long _time) {this.mTimer = _time;}public void start() {handler.postDelayed(runnable, 1000);}public void stop() {handler.removeCallbacks(runnable);}然后添加一个实现的类:[html] view plain copy print?在CODE上查看代码片派生到我的代码片public class VerticalLampView extendsBaseAutoScrollTextView<LampBean> {public VerticalLampView(Context context, AttributeSet attrs,int defStyle) {super(context, attrs, defStyle);}public VerticalLampView(Context context, AttributeSet attrs) { super(context, attrs);}public VerticalLampView(Context context) {super(context);}@Overridepublic String getTextTitle(LampBean data) {return data.title;}@Overridepublic String getTextInfo(LampBean data) {return ;}/*** 这里面的高度应该和你的xml里设置的高度一致*/@Overrideprotected int getAdertisementHeight() {return 40;}}最后是测试代码:[html] view plain copy print?在CODE上查看代码片派生到我的代码片public class LampView nds FrameLayout {@Bind(mp_view)VerticalLampView lampView;private Context mContext = null;private List<LampBean> list=new ArrayList<>();public LampView(Context context, AttributeSet attrs) {super(context, attrs);this.mContext = context;init();}private void init() {setView();}private void setView() {inflate(getContext(), mp_layout, this);ButterKnife.bind(this, this);initData();initView();}private void initView() {lampView.setData((ArrayList<LampBean>) list);lampView.setTextSize(15);lampView.setTimer(2000);lampView.start();}private void initData() {LampBean bean = new LampBean();bean.title = "爆款"; = "踏青零食上京东,百万零食1元秒";list.add(bean);bean = new LampBean();bean.title = "公告"; = "看老刘中国行,满129减50!";list.add(bean);bean = new LampBean();bean.title = "活动"; = "高姿CC霜全渠道新品首发,领券199减50,点击查看";list.add(bean); }。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、在布局文件中进行引用
自定义EditText shape用法
shape xml 文件 作用:自定义控件背景。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="/apk/res/android" android:shape="rectangle"> <solid android:color="#FFFFFF"/> <corners android:radius="10dp"/>
前言
Android课程
android开发应用核心课程
第四章 Android基础用户界面
一 二 TextView基本属性 TextView实现跑马灯效果 EditText基本属性 自定义EditText
三
四 五
ImageView 基本属性
自动完成文本框 进度条
TextView基本属性
自动完成文本框
• 我们在上网进行搜索的时候,有时会将和输入相关的选项全部列举列出 来供用户选择,该组件的功能和它类似。这就是AutoCompleteTextView。
在该组件的显示中,我们要使用到适配器(绑定相关数据),图示如下:
自动完成文本框
• • 要实现搜索,必须要在内部绑定数据。 实现步骤
•
• • • •
1.定义数据内容
如 "java课程","java简介","java视频","java开发","jsp详解","jsp介绍","jsp开发" 2.构建适配器 适配器作用:将数据和控件绑定显示 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, yout.simple_dropdown_item_1line, data);//将数据设置到适配器
自动完成文本框
• 3.为控件绑定适配器 • act.setAdapter(adapter);
进度条
• 我们在安装一些软件时,经常会看到进度条显示安装进度。或者我们在 执行一些比较耗时的程序时,系统会弹出一个进度对话框提示用户等待。 • 在Android系统中进度条有很多种: 对话框进度条 标题栏进度条 水平进度条
注意:
onCreateDialog方法要在被显示的方法调用后才会被
回调。
标题栏进度条
创建步骤如下:
1、获得进度条(注意:设置界面布局之前) requestWindowFeature(Window.FEATURE_INDETE RMINATE_PROGRESS); 2、进度条控制方法 a、在窗口标题栏显示进度条
总结: singleLine--->ellipsize--->marqueeRepeatLimit --->focusable--->focusableInTouchMode
EditText基本属性
EditText 中的常见属性
android:textStyle="bold" 字体样式
android:textColor 字体颜色 android:textSize="20sp" 字体大小
自定义EditText
在项目的开发中,我们有时可能会使用到像如下形式的输入框
那么我们如何完成这种形式的输入框呢? 我们使用的是android:background属性来完成的,它既可以是输入框背
景颜色的设定,也可以是一种绘制形状的引用,这种绘制的形状我们可
以借助于android内部来完成,使用XML配置来进行不同形状的加工,步 骤如下:
对话框进度条
创建步骤如下:
1、重写Activity的onCreateDialog()方法,并 在其中创建对话框。 ProgressDialog pd = new ProgressDialog(this);
pd.setTitle("测试对话框");
pd.setMessage("程序正在加载请稍后!"); pd.setCancelable(true); 2、调用Activity的showDialog()方法,显示进度条 对话框。
</shape> 形状四种 rectangle 矩形(常用), oval 椭圆, line 线性, ring 圆形 颜色 圆角 solid ,gradient (只能2选1) corners
ImageView 属性
1 android:background="@drawable/gril" 设置显示的图片
android:hint="请输入数字!" 设置显示在控件上的提示信息
android:password ="true" 以小点”.”显示文本,推荐输入密码时使用。 android:singleLine="true" 设置单行输入 android:maxLength 设置最大输入字符数 android:editable 是否可编辑 android:numeric / android:phoneNumber只接受数字 android:inputType 限制输入类型 android:cursorVisible 设定光标为显示/隐藏
android:textStyle 设置字体样式[bold(粗体) , italic(斜体) , bold|italic(又粗又斜)]
TextView实现跑马灯
TextView 实现跑马灯效果
1、设置显示内容为单行显示
2、设置文本内容过长时的省略模式 3、设置重复滚动的次数 4、设置控件能够获得焦点 5、在触摸模式下能够获得焦点
2.
android:scaleType="fitXY"
//设置图片在控件中显示的样式
scaleType 的取值 及含义 center----按图片的原来尺寸居中显示 ,当图片的长/宽超过 View的长宽,则截取
图片的居中部分显示。
fitXY-----把图片不按比例扩大/缩小到View的大小显示
创建TextView的方式
A、在程序中创建TextView对象 B、在XML布局文件中定义TextView控件(强烈推荐)
TextView中的属性
android:text 设置显示文本内容 android:textSize 设置文字大小,推荐度量单位”sp”,“dp”也可以
android:textColor 设置文本颜色
法增加或者减少进度,同时也可以设置第二进度
setProgressBarIndeterminateVisibility(true);
b、在窗口标题栏取消进度条 setProgressBarIndeterminateVisibility(false);
水平进度条
创建步骤如下:
1、在布局文件中声明ProgressBar。 设置样式为水平 style="?android:attr/progressBarStyleHorizontal" 2、在Activity中获得ProgressBar实例。 3、调用ProgressBar的incrementProgressBy()方