1. 程式人生 > >Android實現熱門控制元件(左上角顯示熱門)

Android實現熱門控制元件(左上角顯示熱門)

  • 作者:Mr.Egg
  • 狀態:未完成
  • 轉載請註明,雖然寫的不好但是最少讓我知道下

簡單的商品打折控制元件實現

首先,上效果圖

效果圖.png

那麼問題來了,怎麼實現

首先分析,這個肯定要自定義View實現。與這個最像的肯定是TextView。
繼承於TextView(同樣可用於ImageView,這裡只是測試使用不然應該用ImageView,因為內容應該是圖片)
接著是繪製介面(陰影是用來顯示倒計時的,暫時沒用到所以不做解釋)
要實現斜著的長條,首先繪製一條橫向矩形

Paste_Image.png

然後沿著白色矩形左下角頂點逆時針旋轉(設為335°)

旋轉後

顯然左上角過小,向右平移最後繪上文字(記得計算距離長度,用於適配)

效果圖

最後,附上程式碼:

  package microcloud.org.cn.testhelloworld;

import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Build;
import android.util.AttributeSet;
import
android.util.Log; import android.widget.TextView; /** * Created by Mr.Egg on 2016/11/19. */ public class FuckView extends TextView { private int defaultRotate = 315; private String labelText = "default"; private int labelColor = Color.WHITE; private int textColor = Color.BLACK; public
FuckView(Context context)
{ super(context); } public FuckView(Context context, AttributeSet attrs) { super(context, attrs); } public FuckView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public FuckView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int width = getMeasuredWidth(); int height = getMeasuredHeight(); //draw a translucent in top Paint timPaint = new Paint(); timPaint.setColor(Color.parseColor("#30000000")); timPaint.setStyle(Paint.Style.FILL); canvas.drawRect(0f, 0f, width, height / 2f, timPaint); //draw a left mark Paint discountPaint = new Paint(); discountPaint.setColor(labelColor); discountPaint.setStyle(Paint.Style.FILL); canvas.rotate(defaultRotate, 0, height / 2 + height / 8); canvas.translate(0, height / 8); Rect rect = new Rect(0, height / 4, width, height / 2); canvas.drawRect(rect, discountPaint); //draw the left mark text Paint textPaint = new Paint(); textPaint.setColor(textColor); textPaint.setTextAlign(Paint.Align.LEFT); textPaint.setTextSize(rect.height() / 2); canvas.drawText(labelText, rect.left + height / 7, height / 2 - rect.bottom / 7, textPaint); } public FuckView retateView(int rotate) { this.defaultRotate = rotate; return this; } public FuckView setLabelText(String str) { this.labelText = str; return this; } public FuckView setLabelColor(int labelColor) { this.labelColor = labelColor; return this; } public FuckView setLabelTextColor(int textColor) { this.textColor = textColor; return this; } }

相關推薦

Android實現熱門控制元件(左上角顯示熱門)

作者:Mr.Egg狀態:未完成轉載請註明,雖然寫的不好但是最少讓我知道下簡單的商品打折控制元件實現首先,上效果圖效果圖.png那麼問題來了,怎麼實現首先分析,這個肯定要自定義View實現。與這個最像的肯定是TextView。繼承於TextView(同樣可用於ImageView,這裡只是測試使用不然應該用Ima

Android RelativeLayout中控制元件疊加顯示的問題

問題 在如下幾個場景我們需要控制元件的疊加顯示: 可滑動介面(ScrollView,ListView等)固定一個不會跟隨滑動的控制元件。 設定了visibility屬性的控制元件,當它需要顯示的時候總是顯示在最上層,而又不影響其他控制元件的位置。 碰到這些

Android 實現控制元件旋轉(中心點旋轉)

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/

Android 自定義控制元件:打造流佈局實現熱門搜尋標籤

具體實現 1,自定義一個類繼承GridView /** * 自定義流佈局 * @author zhouyou */ public class ZFlowLayout extends ViewGroup{ // 儲存所有子View priva

Android 自定義控制元件之打造流佈局實現熱門搜尋標籤

最終效果 首先來看看效果圖: 其他地方很好實現,就是熱門搜尋有點麻煩,由於資料的不確定性,那麼像GridView明顯不能滿足了,這時候就只能自己來定義一個佈局了。 最終實現後的效果: 具體實現 1,自定義一個類繼承

ApolloStudio高手之路(6):用Python以極簡方式讀寫OPC DA、OPC UA資料並實現UI控制元件自動繫結重新整理顯示

OPC(OLE for Process Control, 用於過程控制的OLE)是一個工業標準,OPC是為了連線資料來源(OPC伺服器)和資料的使用者(OPC應用程式)之間的軟體介面標準。資料來源可以是PLC,DCS,條形碼讀取器等控制裝置。隨控制系統構成的不同,作為資料來源的OPC伺服器既可以

Android 自定義控制元件 優雅實現元素間的分割線 (支援3.0以下)

1、概述話說,隨著Android SDK版本的升級,很多控制元件增加了新的屬性方便我們的使用,比如LinearLayout中多了:divider、showDividers等,用於為其內部元素新增分隔;但是呢,這樣的屬性在較低版本的SDK中不能被支援,那麼,我們在開發過程中,可

使用CToolTipCtrl控制元件實現游標移動到一個控制元件顯示特定的提示資訊

在利用MFC程式設計時,通常要需要知道某些控制元件代表一些資訊,或在文字框輸入時,需要知道文字框輸入內容提示資訊,ToolTip是Win32中一個通用控制元件,MFC中為其生成了一個類CToolTipCtrl,可實現提示資訊顯示。過程如下: 1、新增CTool

Android 自定義控制元件 輕鬆實現360軟體詳情頁

轉載請標明出處:http://blog.csdn.net/lmj623565791/article/details/43649913,本文出自:【張鴻洋的部落格】1、概述最近有不少朋友私聊問應用寶、360軟體助手之類的軟體詳情頁怎麼做,剛好,最近有時間就模仿360軟體助手詳情

Android自定義控制元件實現滑動選擇開關

前言:今天我們仿照著Google給我們提供的Switch控制元件來進行一次模仿,自己動手打造一個可以換滑動圖片以及背景的圖片。 -----------------分割線--------------- 先看一下google提供的Switc控制元件: 其實用法很簡單就當普通的

jQuery---用jq實現控制元件顯示和隱藏

因為發現這個功能用的比較頻繁,所以分享一下: 先說一下,隱藏控制元件有兩種方式:style="visibility: hidden;"和style="display: none;",個人比較喜歡使用style="display: none;",因為style="visibility: h

利用jquery實現inpufile控制元件上傳的圖片在網頁上顯示

程式碼實現: <!Doctype html> <head> <title>擼起袖子加油幹</title> <meta charset='utf-8'> </head> <script src="http://w

android自定義控制元件自動換行效果實現

     第一篇部落格裡面有介紹一篇關於自動換行實現諸多自定義控制元件跟各種效果的博文,但是礙於當初技術能力有限,寫的jar包裡的程式碼亂七八糟,在最近忙完了手頭的工作,不經意間翻看了之前的程式碼,真是慘不忍睹,隨決定重新封裝。重新編寫的android-custom-vg前

Android自定義控制元件】選擇輸入框的實現

1.場景 Android開發中經常會用到選擇輸入控制元件,比如性別的輸入 2.示例圖片 3.程式碼組成 1)演示用的主介面佈局不多說,這裡採用EditText + 一個自定義的底部列表對話方塊來實現的 2)佈局檔案 <?xml

MFC實現picture控制元件顯示jpg圖片檔案

void CMFC_display_opencvDlg::OnBnClickedOk() { // TODO: 在此新增控制元件通知處理程式程式碼 //CDialogEx::OnOK()

Android 自定義RatingBar控制元件顯示不全問題

最近專案要用到 自定義RatingBar控制元件 但是自定義好了樣式發現,星星只顯示一半,於是在網上找各種解決方法。 最後竟然是直接把資源圖片,移動到較高解析度的資料夾裡面。 我的解決做法如下,如果有更好的方法,請留言告知。 一,先寫一個drawable,設定好backg

Android的WebView控制元件載入網頁顯示速度慢的究極解決方案

       Android客戶端中混搭HTML頁面,會出現雖然HTML內容載入完成,標題也正常顯示,但是整個網頁需要等到近5秒(甚至更多)時間才會顯示出來。研究了很久,搜遍了國外很多網站,也看過PhoneGap的程式碼,一直無解。        一般人堆WebView的加速,都是建議先用webVi

Android實現WebView控制元件的完整截圖

最近總能看到好多APP都支援文章和網頁的長截圖,出於好奇研究了一下,分享給大家。 網上有好多的例子,其中好多都是已經過時的就不在複述了,我發現有一種還是比較通用的方法。 //android 5.0 之後需要開啟瀏覽器的整體快取才能擷取整個Web if (

Android自定義控制元件實戰——水流波動效果的實現WaveView

   水流波動的波形都是三角波,曲線是正餘弦曲線,但是Android中沒有提供繪製正餘弦曲線的API,好在Path類有個繪製貝塞爾曲線的方法quadTo,繪製出來的是2階的貝塞爾曲線,要想實現波動效果,只能用它來繪製Path曲線。待會兒再講解2階的貝塞爾曲線是怎麼回事,先

Android自定義控制元件NumberCircleProgressBar(圓形進度條)的實現

Mode Rotate 實現方式 1.使用unreachedarea的顏色繪製Circle,作為底層; canvas.drawCircle(centerX, centerY,mCircleRadius, mCirclePaint); 2.使用reacherarea的顏色繪製扇形,作為中間層; canvas.