日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NineImageForCircleFriends朋友圈九宫格

發布時間:2025/4/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NineImageForCircleFriends朋友圈九宫格 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

###需求

  • 當只有一張的時候,顯示一張圖片(寬度是整個手機寬度(去掉左右margin和padding值))
  • 當有兩張和四張圖片的時候,圖片的寬度是整個寬度的1/2,當然要剔除margin和padding值
  • 當圖片是3,5,6,7,8,9張的時候,顯示的是類似于微信九宮格的圖片

###主要的測量方法

@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);int width = MeasureSpec.getSize(widthMeasureSpec);int height = 0;int totalWidth = width - getPaddingLeft() - getPaddingRight();if (mImageInfo != null && mImageInfo.size() > 0) {if (mImageInfo.size() == 1) {gridWidth = singleImageSize > totalWidth ? totalWidth : singleImageSize;gridHeight = (int) (gridWidth / singleImageRatio);//矯正圖片顯示區域大小,不允許超過最大顯示范圍if (gridHeight > singleImageSize) {float ratio = singleImageSize * 1.0f / gridHeight;gridWidth = (int) (gridWidth * ratio);gridHeight = singleImageSize;}} else if (mImageInfo.size() == 2 || mImageInfo.size() == 4) {//如果當為2張或者4張圖片的時候 就按照總寬度的 1/2gridWidth = gridHeight = (totalWidth - gridSpacing * (columnCount - 1)) / columnCount;//這里無論是幾張圖片,寬高都按總寬度的 1/3 // gridWidth = gridHeight = (totalWidth - gridSpacing ) / 2;} else {gridWidth = gridHeight = (totalWidth - gridSpacing * 2) / 3;}width = gridWidth * columnCount + gridSpacing * (columnCount - 1) + getPaddingLeft() + getPaddingRight();height = gridHeight * rowCount + gridSpacing * (rowCount - 1) + getPaddingTop() + getPaddingBottom();}setMeasuredDimension(width, height);} 復制代碼

###效果圖

###項目地址 https://github.com/wuyinlei/NineImageForCircleFriends

###參考

https://github.com/jeasonlzy/NineGridView

總結

以上是生活随笔為你收集整理的NineImageForCircleFriends朋友圈九宫格的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。