編輯:關於Android編程
package cc.cn; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.app.Activity; /** * Demo描述: * Scroller使用示例——讓控件平移劃過屏幕 * * 參考資料: * http://blog.csdn.net/c_weibin/article/details/7438323 * Thank you very much * * 注意事項: * 1 在布局中將cc.cn.LinearLayoutSubClass的控件的寬度設置為"fill_parent" * 便於觀察滑動的效果 */ public class MainActivity extends Activity { private Button mButton; private LinearLayoutSubClass mLinearLayoutSubClass; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mLinearLayoutSubClass=(LinearLayoutSubClass) findViewById(R.id.linearLayoutSubClass); mButton=(Button) findViewById(R.id.button); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { mLinearLayoutSubClass.beginScroll(); } }); } }
package cc.cn; import android.content.Context; import android.util.AttributeSet; import android.widget.LinearLayout; import android.widget.Scroller; /** * API注釋: * * 1 //第一,二個參數起始位置;第三,四個滾動的偏移量;第五個參數持續時間 * startScroll(int startX, int startY, int dx, int dy, int duration) * * 2 //在startScroll()方法執行過程中即在duration時間內computeScrollOffset() * 方法會一直返回true,但當動畫執行完成後會返回返加false. * computeScrollOffset() * * 3 當執行ontouch()或invalidate()或postInvalidate()均會調用該方法 * computeScroll() * */ public class LinearLayoutSubClass extends LinearLayout { private Scroller mScroller; private boolean flag=true; public LinearLayoutSubClass(Context context) { super(context); } public LinearLayoutSubClass(Context context, AttributeSet attrs) { super(context, attrs); //也可采用該構造方法傳入一個interpolator //mScroller=new Scroller(context, interpolator); mScroller=new Scroller(context); } @Override public void computeScroll() { super.computeScroll(); if(mScroller.computeScrollOffset()){ scrollTo(mScroller.getCurrX(), 0); //使其再次調用computeScroll()直至滑動結束,即不滿足if條件 postInvalidate(); } } public void beginScroll(){ if (flag) { mScroller.startScroll(0, 0, -2500, 0, 2500); flag = false; } else { mScroller.startScroll(0, 0, 0, 0, 1500); flag = true; } //調用invalidate();使其調用computeScroll() invalidate(); } }
ViewAnimator繼承了FrameLayout,多個組件重合在一起,可以加入多個組件,然後切換的時候會有動畫。ViewAnimator及其子類的繼承關系ViewAn
在發現這個類之前,一直是用的handler,子線程發消息,UI線程進行倒計時的顯示工作。前幾天在做一個倒計時顯示的時候發現了這個類,用起來很方便 翻看了下源碼,內部已經幫
本文介紹MediaPlayer的使用。MediaPlayer可以播放音頻和視頻,另外也可以通過VideoView來播放視頻,雖然VideoView比MediaPlayer
一,介紹android四大組件之一:BroadcastReceiver 翻譯成中文:廣播接收者。在Android中,Broadcast是一種廣泛運用在應用程序之間傳輸信息