編輯:Android資訊
本文由碼農網 – 小峰原創,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
對於一些復雜的App,我們希望能夠給用戶一些引導操作。當用戶首次打開應用的時候,可以按照給出的引導來熟悉App。TourGuid就是為這種場景而生的項目,動畫效果很漂亮。
在gradle file中添加如下依賴:
repositories { mavenCentral() maven(){ url "https://oss.sonatype.org/content/repositories/snapshots" } } compile ('com.github.worker8:tourguide:1.0.10-SNAPSHOT@aar'){ transitive=true }
TourGuide要求的最低版本是API 11+(Android 3.0.x, HONEYCOMB)。
假如你有這樣一個button需要用戶去點擊:
Button button = (Button)findViewById(R.id.button);
你可以通過如下辦法在button之上添加引導提示:
TourGuide mTourGuideHandler = TourGuide.init(this).with(TourGuide.Technique.Click) .setPointer(new Pointer()) .setToolTip(new ToolTip().setTitle("Welcome!").setDescription("Click on Get Started to begin...")) .setOverlay(new Overlay()) .playOn(button);
當用戶完成之後,你可以通過調用如下代碼解除這個tutorial:
mTourGuideHandler.cleanUp();
Tooltip(工具提示)是指對一個UI元素進行進一步解釋的文字框。在前面的基礎用法示例中,ToolTip並沒有自定義,使用的是默認的樣式。但是你是可以隨意自定義的。
Animation animation = new TranslateAnimation(0f, 0f, 200f, 0f); animation.setDuration(1000); animation.setFillAfter(true); animation.setInterpolator(new BounceInterpolator()); ToolTip toolTip = new ToolTip() .setTitle("Next Button") .setDescription("Click on Next button to proceed...") .setTextColor(Color.parseColor("#bdc3c7")) .setBackgroundColor(Color.parseColor("#e74c3c")) .setShadow(true) .setGravity(Gravity.TOP | Gravity.LEFT) .setEnterAnimation(animation); TourGuide mTourGuideHandler = TourGuide.init(this).with(TourGuide.Technique.Click) .setPointer(new Pointer()) .setToolTip(toolTip) .setOverlay(new Overlay()) .playOn(button);
除了gravity需要解釋一下外,大多數自定義方法都可以從命名看出其作用。gravity是TourGuide相對於目標按鈕的位置。比如,setGravity(Gravity.TOP | Gravity.LEFT) 所產生的效果如下:
Pointer是一個暗示存在可點擊UI元素的圓形動畫按鈕。默認為白色,居中顯示,你可以這樣自定義:
new Pointer().setColor(Color.RED).setGravity(Gravity.BOTTOM|Gravity.RIGHT);
下面是沒有自定義和自定義之後的區別:
Overlay是一個用於擋住所有其他UI原色的半透明背景,可以讓用戶的注意力集中在需要點擊的元素上面。其顏色和形狀都是可以自定義的:
Overlay overlay = new Overlay() .setBackgroundColor(Color.parseColor("#AAFF0000")) .disableClick(true) .setStyle(Overlay.Style.Rectangle);
在一個窗口裡面添加tab便簽,完成便簽切換來實現頁面的切換,這樣的好處是可以在同一個窗口裡面有多個頁面,這些頁面共享同一個窗口的資源,同使用多個窗口來實現這個功能
DBFlow,綜合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等庫的優點。同時不是基於反射,所以性能也是非常高,效率緊
在Android的輸入框中加入清除按鈕,是很常見的設計,本文介紹如何創建一個控件,在輸入框中加入清除按鈕。 我們來看看實現這個控件都需要做什麼: 清除按鈕在輸
簡介 首先我們看到HandlerThread很快就會聯想到Handler。Android中Handler的使用,一般都在UI主線程中執行,因此在Handler接收