最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實現(xiàn)根據(jù)評分添加星級條

 更新時間:2019年10月23日 09:13:03   作者:搖啊搖曳瑤  
這篇文章主要介紹了Android實現(xiàn)根據(jù)評分添加星級條,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

簡述

在仿寫豆瓣的時候,發(fā)現(xiàn)了根據(jù)評分不同,星級數(shù)也不同的星級條。

百度一搜,發(fā)現(xiàn)Android有自帶控件UIRatingBar,而iOS得要自己寫…好吧,那就寫吧。

圖片素材

首先,要準備三張圖片,圖片如下:
空星,半星,全星

因為我們可以看到,在豆瓣的評分星級條里,只有空、半、全星,所以只需要準備這3種圖片。

思路

豆瓣的星級條中既有圖片,又有文字,所以我們自定義一個繼承于UIViewstarView。

初始化方法

因為星級條要根據(jù)評分的數(shù)據(jù)來決定星的顆數(shù),所以我們要重新創(chuàng)建一個初始化方法:

//在starView.m中寫

- (instancetype)initWithFrame:(CGRect)frame score:(double)score;


//在starView.h中對其進行操作實現(xiàn)
- (instancetype)initWithFrame:(CGRect)frame score:(double)score{
 self = [super initWithFrame:frame];
 //記得把傳過來的score賦值給全局變量_starScore
 _starScore = score;
 return self;
}

這樣,我們就可以在ViewController.m中利用此方法初始化一個星級條視圖:

starView *star = [[CJTStarView alloc] initWithFrame:CGRectMake(100, 100, 200, 50) score:6.8];

此處的score可以改成根據(jù)網(wǎng)絡請求得到的評分數(shù)據(jù)。

根據(jù)添加星星圖片

在這里,我設置的分數(shù)與星星的對應關系如下:

4.6-5.5  2.5顆星
5.6-6.5  3顆星
6.6-7.5  3.5顆星
7.6-8.5  4顆星
8.6-9.5  4.5顆星

而因為我們只有5顆星,所以對分數(shù)做如下處理:

_starScore = (_starScore / 2 - 0.3);

接下來就是用循環(huán)添加圖片到view上,因為我們有三種圖片,所以在循環(huán)中還要加判斷,代碼如下:

for (int count = 0; count < 5; count++) {
 UIImageView *starImageView = [[UIImageView alloc] init];
 starImageView.frame = CGRectMake(count * self.frame.size.height, 0, self.frame.size.height, self.frame.size.height);
 [self addSubview:starImageView];
 if (count <= _starScore - 0.5) {
  starImageView.image = [UIImage imageNamed:@"stars_full"];
 } else {
  if (_starScore - count >= 0 && _starScore - count < 0.5) {
  starImageView.image = [UIImage imageNamed:@"stars_half"];
  } else {
  starImageView.image = [UIImage imageNamed:@"stars_empty"];
  }
 }
 }

這里的判斷條件是數(shù)學問題,就不詳細講了。

當然,如果分數(shù)與星星的對應規(guī)則和我不同,那么就要適當修正這里的判斷條件。

在星級條后添加分數(shù)

在豆瓣到星級條后面還有分數(shù),因此我們在view中添加一個UILabel對象。

UILabel *scoreLabel = [[UILabel alloc] init];
 scoreLabel.frame = CGRectMake( 5 * self.frame.size.height + 10, 8, self.frame.size.width - 5 * self.frame.size.height - 10, self.frame.size.height - 8);
 scoreLabel.text = [NSString stringWithFormat:@"%.1f", _starScore];
 scoreLabel.textColor = [UIColor grayColor];
 scoreLabel.font = [UIFont systemFontOfSize:25];

這里要注意,因為我們在設置星級圖的時候會修改_starScore的值,所以要在添加星星圖片之前設置UILabel。

效果圖

最后做出來到效果如下:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 簡單實現(xiàn)Android學生管理系統(tǒng)(附源碼)

    簡單實現(xiàn)Android學生管理系統(tǒng)(附源碼)

    這篇文章主要介紹了如何簡單實現(xiàn)Android學生管理系統(tǒng),特別適合計算機專業(yè)的即將畢業(yè)的同學學習借鑒制作學生管理系統(tǒng),感興趣的小伙伴們可以參考一下
    2015-12-12
  • 深入了解Android中GestureDetector的定義與使用

    深入了解Android中GestureDetector的定義與使用

    Android中的GestureDetector?可以使用?MotionEvents?檢測各種手勢和事件,非常的好用。本文將會通過幾個具體的例子來講解一下GestureDetector的具體使用方法,需要的可以參考一下
    2023-01-01
  • Android自定義wheelview實現(xiàn)滾動日期選擇器

    Android自定義wheelview實現(xiàn)滾動日期選擇器

    這篇文章主要為大家詳細介紹了Android自定義wheelview實現(xiàn)滾動日期選擇器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android使alertDialog.builder不會點擊外面和按返回鍵消失的方法

    Android使alertDialog.builder不會點擊外面和按返回鍵消失的方法

    本篇文章主要介紹了Android使alertDialog.builder不會點擊外面和按返回鍵消失的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Android BindService使用案例講解

    Android BindService使用案例講解

    這篇文章主要介紹了Android BindService使用案例講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Gradle編譯打包Android apk詳細介紹

    Gradle編譯打包Android apk詳細介紹

    這篇文章主要介紹了Gradle編譯打包Android apk詳細介紹的相關資料,理解Gradle構建過程,解讀Android Gradle插件的配置,需要的朋友可以參考下
    2016-12-12
  • Android實現(xiàn)短信驗證碼自動攔截讀取功能

    Android實現(xiàn)短信驗證碼自動攔截讀取功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)短信驗證碼自動攔截讀取功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android UI系列-----Dialog對話框示例

    Android UI系列-----Dialog對話框示例

    本篇文章主要介紹了Android UI系列-----Dialog對話框示例,在界面上彈出一個Dialog對話框使我們經(jīng)常需要做的,有需要的可以了解一下。
    2017-01-01
  • 關于Android多渠道打包的進階知識

    關于Android多渠道打包的進階知識

    前一篇文章主要介紹了關于Android程序的多渠道打包方法,這一篇文章介紹了多渠道打包的進階知識,還不會的同學快進來學習下吧,建議收藏以防迷路
    2021-08-08
  • Kotlin超簡單實現(xiàn)StepView的方法

    Kotlin超簡單實現(xiàn)StepView的方法

    這篇文章主要介紹了Kotlin超簡單實現(xiàn)StepView的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11

最新評論

永昌县| 嵊州市| 开远市| 丹阳市| 布尔津县| 前郭尔| 黄浦区| 长垣县| 怀化市| 赞皇县| 平乡县| 武冈市| 庆云县| 吉安县| 集安市| 乌兰县| 榕江县| 上思县| 闸北区| 太原市| 隆昌县| 丽水市| 清水县| 都安| 大港区| 永顺县| 元氏县| 马尔康县| 邹平县| 耿马| 民勤县| 德清县| 和平县| 阿拉善盟| 镇雄县| 五峰| 景德镇市| 佛坪县| 唐山市| 安图县| 宿州市|