編輯:關於Android編程
Android TV上的焦點凸顯特效相信大家都看到過,那麼我們就來實現它吧,首先上張效果圖。
先說一下實現原理,主要通過重寫RelativeLayout實現item,之後在其中加入scalanimation動畫效果。剛開始處理時,還是發現了一些問題,比如item放大後會被其他item遮擋,如何添加選中邊框等等,以及動畫的實現等等。下面放上實現細節。
首先是item的代碼:
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHByZSBjbGFzcz0="brush:java;">
hover的src是一個selector drawable,當未focus時,它的背景是tansparent,當focus,放入外框圖片。
自定義的HomeItemContainer 代碼:
public class HomeItemContainer extends RelativeLayout { private Animation scaleSmallAnimation; private Animation scaleBigAnimation; public HomeItemContainer(Context context) { super(context); } public HomeItemContainer(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public HomeItemContainer(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); } @Override protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) { super.onFocusChanged(gainFocus, direction, previouslyFocusedRect); if (gainFocus) { this.bringToFront(); getRootView().requestLayout(); getRootView().invalidate(); zoomOut(); } else { zoomIn(); } } private void zoomIn() { if (scaleSmallAnimation == null) { scaleSmallAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.anim_scale_small); } startAnimation(scaleSmallAnimation); } private void zoomOut() { if (scaleBigAnimation == null) { scaleBigAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.anim_scale_big); } startAnimation(scaleBigAnimation); } }
順便放上一個scaleanimation縮小的效果代碼:
最後放上item的父view:
這裡我定義了10個item,注意RelativeLayout的兩個屬性,clipChildren設置false,讓children view可以超出自身所設置的大小,clipToPadding設置為false,讓children view可以使用padding 的位置進行繪制,有了這2個屬性,item就可以實現放大而不被遮擋了。
好了,焦點特效的教程就說到這裡了,有問題可以在評論中反饋。
第4節 遠程調用之前提到過:如果站在Service與觸發Service運行的那個組件的角度,根據它們的關系進行分類,有兩種:本地Service,遠程Service。本地S
前面的博文對Lichee做了系列分析,其實就是對在《七年之癢》中所說的,Android BSP具備的一項基本素質-SHELL腳本,所以我們Lichee系列的文章著重分析了
Android總體有五大布局: 線性布局(LiearLayout): 屏幕垂直或水平方向布局。 幀布局(FrameLayout):控件從屏幕左上角開始布局。 相對布
由於最近參加一個比賽寫的智能排插助手需要用到定時觸發功能,於是做了一個類似鬧鐘功能,存儲鬧鐘信息用的時android自帶的數據庫源碼地址https://github.co