本文主要是介绍自定义控件:飞入飞出的效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
效果图:
用到4个类(copy)
1 布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><com.baidu.stellarmap.lib.StellarMapandroid:id="@+id/stleeMap"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>
* 步骤:
* 准备:复制4个类
* 1 布局+获取StellarMap对象
* 2 设置adapter
* 3 设置StellarMap参数
* 1 布局+获取StellarMap对象
//1获取StellarMap对象stellarMap = (StellarMap) findViewById(R.id.stleeMap);
* 2 设置adapter
//2 设置adapterMyAdapter adapter = new MyAdapter();stellarMap.setAdapter(adapter);
class MyAdapter implements Adapter {// 注意:Adapter是stellMap包下的,是interface// 共多少组数据@Overridepublic int getGroupCount() {return 3;}// 每一组有多少条数据@Overridepublic int getCount(int group) {return 11;}@Overridepublic View getView(int group, int position, View convertView) {TextView tv = new TextView(context);tv.setText("item" + position);// 1 设置字体大小Random random = new Random();int textSize = random.nextInt(8) + 15;tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize);// 2 设置字体颜色int red = random.nextInt(150) + 50;int green = random.nextInt(150) + 50;int blue = random.nextInt(150) + 50;int textColor = Color.rgb(red, green, blue);tv.setTextColor(textColor);return tv;}// 没什么作用@Overridepublic int getNextGroupOnPan(int group, float degree) {return 0;}// 下一个页面要显示的数据@Overridepublic int getNextGroupOnZoom(int group, boolean isZoomIn) {return (group + 1) % getGroupCount();// 确保循环显示}}
3 设置StellarMap参数
若想第一页就显示数据,那么方法setGroup(0, true);必须放在setAdapter(adapter)后面,其他方法顺序无所谓;
public void initStellarMap() {stellarMap.setGroup(0, true);stellarMap.setInnerPadding(padding, padding, padding, padding);// 设置textView的内边距stellarMap.setRegularity(15, 15);}
源码:http://download.csdn.net/detail/ss1168805219/9485126
这篇关于自定义控件:飞入飞出的效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!