Android自定义控件与特效方案.ppt

Android自定义控件与特效方案

Android自定义控件与特效 吴坤庭 自定义属性 Attrs.xml resources declare-styleable name=mainView attr name=refreshTime format=integer/ attr name=shadowHeight format=integer/ /declare-styleable /resources main.xml com.android.Effect.TribalFusion android:orientation=vertical mainView:contentWidth=268 mainView:contentHeight=57 mainView:refreshTime=5000 mainView:shadowHeight=30 / main.java TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.mainView, 0, 0); contentW = a.getInt(R.styleable.mainView_contentWidth, 0); 自定义view main.xml defineview /defineview Defineview.java public class DefineView extends view { @overide public void ondraw(Canvas cavas) { } } 动态广告栏控件 Handler的使用 handler.sendMessageDelayed(handler.obtainMessage(), refreshTime);隔一段时间发个消息到达动画的效果 时钟控件 Listview listView.setOnScrollListener(new OnScrollListener() { @Override public void onScroll(AbsListView v, int firstVisibleItem, int visibleItemCount, int totalItemCount) ; @Override public void onScrollStateChanged(AbsListView view, int scrollState) ; }); 闪烁特效控件 shader = new LinearGradient(0, 0, 200, 0, new int[] { Color.RED, Color.GREEN, Color.BLUE }, null, TileMode.MIRROR); mTxtPaint.setShader(shader); @Override protected void onDraw(Canvas canvas) { long now = System.currentTimeMillis(); float elapsed = (now - lastTime) / 4.5f; dx += elapsed; Matrix matrix = new Matrix(); if (start) { matrix.setTranslate(dx, 0); invalidate(); } else { matrix.setTranslate(0, 0); } shader.setLocalMatrix(matrix); } 图片浏览特效控件 倒影算法 通过重写Gallery 的getChildStaticTransformation()实现图片间切换的效果 Listview 顺序移动控件 mWindowManager = (WindowManager)mContext.getSystemService(window); mWindowManager.addView(v, mWindowParams); private TouchInterceptor.DragListener mDragListener = new TouchInterceptor.DragListener() { public void drag(int from, int to) { mAdapter.notifyDataSetChanged(); mListView.invalidateViews(); } }; 更多… Dockba

文档评论(0)

1亿VIP精品文档

相关文档