转自:http://blog.youkuaiyun.com/jielundewode/article/details/52299433
本文参考了manymore13文章逻辑,在此基础上做了改进:
1.可定义最大行数
2.定义每行显示几张
3.当图片数量过多时设置更多图片
由于个人较懒,去掉了xml配置属性,所有属性在java代码中设置。
先看代码:
<code class="hljs java has-numbering"><span class="hljs-keyword">import</span> android.content.Context; <span class="hljs-keyword">import</span> android.util.AttributeSet; <span class="hljs-keyword">import</span> android.view.MotionEvent; <span class="hljs-keyword">import</span> android.view.View; <span class="hljs-keyword">import</span> android.view.ViewGroup; <span class="hljs-keyword">import</span> android.widget.ImageView; <span class="hljs-keyword">import</span> com.bumptech.glide.Glide; <span class="hljs-javadoc">/** * Desc:类似微信朋友圈图片展示 * Author:gcy * Date:2016/8/24 */</span> <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MultiImageView</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">ViewGroup</span> {</span> <span class="hljs-javadoc">/** * 单行最多图片数 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">int</span> LINE_MAX_COUNT = <span class="hljs-number">3</span>; <span class="hljs-javadoc">/** * 这里是九宫图 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">int</span> MAX_IMG_COUNT = <span class="hljs-number">9</span>; <span class="hljs-javadoc">/** * 每行最大图片数 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">int</span> mLineMaxCount = LINE_MAX_COUNT; <span class="hljs-javadoc">/** * 图片地址 */</span> <span class="hljs-keyword">private</span> String[] mImgUrls; <span class="hljs-javadoc">/** * 图片的数量 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mImgCount; <span class="hljs-javadoc">/** * 图片之间的间距 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mPicSpace = <span class="hljs-number">5</span>; <span class="hljs-javadoc">/** * 子view边长度 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mChildEdgeSize; <span class="hljs-javadoc">/** * 子view可见个数 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mChildVisibleCount; <span class="hljs-javadoc">/** * 这里是九宫格 所以设置为数值9 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mMaxChildCount = MAX_IMG_COUNT; <span class="hljs-javadoc">/** * 是否截断点击事件 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">boolean</span> mIntercept = <span class="hljs-keyword">false</span>; <span class="hljs-javadoc">/** * 服务器上缩略图最大尺寸 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">int</span> maxPicSize = <span class="hljs-number">250</span>; <span class="hljs-javadoc">/** * 单张图片宽度 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mSingleSrcWidth; <span class="hljs-javadoc">/** * 单张图片高度 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mSingleSrcHeight; <span class="hljs-javadoc">/** * 单张图片时控件期望的边的最大的大小 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> mSingleExpectMaxViewSize; <span class="hljs-keyword">private</span> <span class="hljs-keyword">float</span> mSingleExpectMaxViewRatio = <span class="hljs-number">0.8</span>f; <span class="hljs-javadoc">/** * 单张图片时图片缩放比例 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">float</span> mSingleScaleRatio; <span class="hljs-javadoc">/** * 各个图片点击事件回调 */</span> <span class="hljs-keyword">private</span> ClickCallback mClickCallback; <span class="hljs-keyword">private</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">OnClickListener</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">View</span>.<span class="hljs-title">OnClickListener</span> {</span> <span class="hljs-keyword">int</span> index; <span class="hljs-keyword">public</span> <span class="hljs-title">OnClickListener</span>(<span class="hljs-keyword">int</span> i) { index = i; } <span class="hljs-annotation">@Override</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onClick</span>(View view) { <span class="hljs-keyword">if</span> (mClickCallback != <span class="hljs-keyword">null</span>) { mClickCallback.callback(index, mImgUrls); } } } <span class="hljs-keyword">public</span> <span class="hljs-title">MultiImageView</span>(Context context) { <span class="hljs-keyword">super</span>(context); } <span class="hljs-keyword">public</span> <span class="hljs-title">MultiImageView</span>(Context context, AttributeSet attrs) { <span class="hljs-keyword">super</span>(context, attrs); mPicSpace = <span class="hljs-number">10</span>; mSingleExpectMaxViewSize = <span class="hljs-number">500</span>; mSingleExpectMaxViewSize = <span class="hljs-number">300</span>; } <span class="hljs-javadoc">/** * 初始化该控件 * *<span class="hljs-javadoctag"> @param</span> len */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setMaxChildCount</span>(<span class="hljs-keyword">int</span> len) { removeAllViews(); mMaxChildCount = len; <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i < len; i++) { ImageView iv = <span class="hljs-keyword">new</span> ImageView(getContext()); LayoutParams params = <span class="hljs-keyword">new</span> LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); iv.setScaleType(ImageView.ScaleType.CENTER_CROP); <span class="hljs-comment">// iv.setOnClickListener(mClickListener);</span> <span class="hljs-comment">//iv.setTag(i);</span> <span class="hljs-keyword">this</span>.addView(iv, params); } } <span class="hljs-javadoc">/** * 单张图时调用 ,注意 这里宽高需要服务器提供 * 因为在你下载图片时是不知道图片大小的 * 所以需要服务器告诉你 * *<span class="hljs-javadoctag"> @param</span> imgUrl 图片地址 *<span class="hljs-javadoctag"> @param</span> srcWidth 图片宽度 *<span class="hljs-javadoctag"> @param</span> srcHeight 图片高度 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setSingleImg</span>(String imgUrl, <span class="hljs-keyword">int</span> srcWidth, <span class="hljs-keyword">int</span> srcHeight) { mLineMaxCount = <span class="hljs-number">1</span>; <span class="hljs-keyword">int</span> maxSize = Math.max(srcWidth, srcHeight); mSingleScaleRatio = <span class="hljs-number">1</span>f; <span class="hljs-keyword">if</span> (maxSize > mSingleExpectMaxViewSize) { mSingleScaleRatio = maxSize * <span class="hljs-number">1.0</span>f / mSingleExpectMaxViewSize; } mSingleSrcWidth = (<span class="hljs-keyword">int</span>) (srcWidth / mSingleScaleRatio); mSingleSrcHeight = (<span class="hljs-keyword">int</span>) (srcHeight / mSingleScaleRatio); <span class="hljs-keyword">boolean</span> request = <span class="hljs-keyword">false</span>; mImgUrls = <span class="hljs-keyword">new</span> String[]{imgUrl}; <span class="hljs-keyword">if</span> (mImgUrls != <span class="hljs-keyword">null</span> && mImgUrls.length == <span class="hljs-number">1</span>) { request = <span class="hljs-keyword">true</span>; } dealWithImgs(mImgUrls); <span class="hljs-keyword">if</span> (request) { <span class="hljs-keyword">this</span>.requestLayout(); } } <span class="hljs-javadoc">/** * 显示多张图片(两张以上)图片 传图片数组进去 * 你在外部使用时需要把图片传进去 * *<span class="hljs-javadoctag"> @param</span> imgs 图片url数组 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setImgs</span>(String[] imgs, <span class="hljs-keyword">int</span> lineImg) { mLineMaxCount = lineImg; mSingleSrcHeight = mSingleSrcWidth = <span class="hljs-number">0</span>; mSingleScaleRatio = <span class="hljs-number">1</span>; dealWithImgs(imgs); } <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> moreResId ; <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setMoreImgBg</span>(<span class="hljs-keyword">int</span> resid){ <span class="hljs-keyword">this</span>.moreResId = resid ; } <span class="hljs-javadoc">/** * 设置是否拦截事件 * *<span class="hljs-javadoctag"> @param</span> intercept true 事件拦截 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setIntercept</span>(<span class="hljs-keyword">boolean</span> intercept) { mIntercept = intercept; } <span class="hljs-javadoc">/** * 设置图片点击回调 * *<span class="hljs-javadoctag"> @param</span> callback 事件回调 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setClickCallback</span>(ClickCallback callback) { mClickCallback = callback; } <span class="hljs-javadoc">/** * 点击图片回调 */</span> <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">ClickCallback</span> {</span> <span class="hljs-javadoc">/** * 回调方法 * *<span class="hljs-javadoctag"> @param</span> index 点击的索引 *<span class="hljs-javadoctag"> @param</span> str 图片地址数组 */</span> <span class="hljs-keyword">void</span> callback(<span class="hljs-keyword">int</span> index, String[] str); } <span class="hljs-javadoc">/** * 获取图片可能显示多少行数 * *<span class="hljs-javadoctag"> @param</span> imgSize 图片个数 *<span class="hljs-javadoctag"> @return</span> 行数 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">int</span> <span class="hljs-title">getMultyImgLines</span>(<span class="hljs-keyword">int</span> imgSize) { <span class="hljs-keyword">if</span> (imgSize == <span class="hljs-number">0</span>) { <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>; } <span class="hljs-keyword">return</span> (imgSize + mLineMaxCount - <span class="hljs-number">1</span>) / mLineMaxCount; } <span class="hljs-javadoc">/** * 获取当前图片数量 * *<span class="hljs-javadoctag"> @return</span> 数量 */</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">int</span> <span class="hljs-title">getImgCount</span>() { <span class="hljs-keyword">return</span> mImgCount; } <span class="hljs-annotation">@Override</span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">boolean</span> <span class="hljs-title">onInterceptTouchEvent</span>(MotionEvent ev) { <span class="hljs-keyword">return</span> mIntercept; } <span class="hljs-annotation">@Override</span> <span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onLayout</span>(<span class="hljs-keyword">boolean</span> changed, <span class="hljs-keyword">int</span> l, <span class="hljs-keyword">int</span> t, <span class="hljs-keyword">int</span> r, <span class="hljs-keyword">int</span> b) { <span class="hljs-keyword">int</span> lpadding = getPaddingLeft(); <span class="hljs-keyword">int</span> tpadding = getPaddingTop(); <span class="hljs-keyword">int</span> left = lpadding, top = tpadding; <span class="hljs-keyword">int</span> childCount = getChildCount(); <span class="hljs-keyword">int</span> visibleChildCount = mChildVisibleCount; <span class="hljs-keyword">int</span> breakLineC = <span class="hljs-number">0</span>; <span class="hljs-comment">// 断行</span> <span class="hljs-keyword">if</span> (visibleChildCount == <span class="hljs-number">4</span>) { <span class="hljs-comment">// 当四张图片时 两张时换行</span> breakLineC = <span class="hljs-number">2</span>; } <span class="hljs-keyword">else</span> { <span class="hljs-comment">// 每行三张图片换行</span> breakLineC = mLineMaxCount; } <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i < childCount; i++) { View child = getChildAt(i); <span class="hljs-keyword">if</span> (child.getVisibility() == View.GONE) { <span class="hljs-keyword">continue</span>; } <span class="hljs-keyword">if</span> (visibleChildCount == <span class="hljs-number">1</span>) { <span class="hljs-comment">// 单张做特殊显示</span> <span class="hljs-keyword">if</span> (mLineMaxCount == <span class="hljs-number">1</span>) { <span class="hljs-comment">// left = (getMeasuredWidth() - mSingleSrcWidth) / 2;// 居中</span> left = lpadding; <span class="hljs-comment">// 居左</span> } <span class="hljs-keyword">if</span> (mSingleSrcWidth == <span class="hljs-number">0</span> || mSingleSrcHeight == <span class="hljs-number">0</span>) { child.layout(left, top, left + mChildEdgeSize, top + mChildEdgeSize); } <span class="hljs-keyword">else</span> { child.layout(left, top, left + mSingleSrcWidth, top + mSingleSrcHeight); } } <span class="hljs-keyword">else</span> { child.layout(left, top, left + mChildEdgeSize, top + mChildEdgeSize); left += (mPicSpace + mChildEdgeSize); <span class="hljs-keyword">if</span> ((i + <span class="hljs-number">1</span>) % breakLineC == <span class="hljs-number">0</span>) { top += mChildEdgeSize + mPicSpace; left = lpadding; } } } } <span class="hljs-javadoc">/** * 确定九宫图控件自身的大小以及内部ImageView的大小 */</span> <span class="hljs-annotation">@Override</span> <span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">onMeasure</span>(<span class="hljs-keyword">int</span> widthMeasureSpec, <span class="hljs-keyword">int</span> heightMeasureSpec) { <span class="hljs-keyword">if</span> (getChildCount() == <span class="hljs-number">0</span>) { setMaxChildCount(mMaxChildCount); } measureImgWidth(widthMeasureSpec); mChildVisibleCount = getVisibleChildCount(); <span class="hljs-keyword">int</span> lines = getMultyImgLines(mChildVisibleCount); <span class="hljs-keyword">int</span> viewHeight = ((lines - <span class="hljs-number">1</span>) * mPicSpace + lines * mChildEdgeSize) + getPaddingTop() + getPaddingBottom(); <span class="hljs-keyword">if</span> (mChildVisibleCount == <span class="hljs-number">1</span>) { viewHeight = mSingleSrcHeight == <span class="hljs-number">0</span> ? viewHeight : mSingleSrcHeight; } <span class="hljs-keyword">int</span> widthSize = MeasureSpec.getSize(widthMeasureSpec); setMeasuredDimension(widthSize, viewHeight); <span class="hljs-keyword">int</span> heightSize = mChildEdgeSize; widthSize = heightSize; <span class="hljs-keyword">if</span> (mChildVisibleCount == <span class="hljs-number">1</span> && mSingleSrcWidth != <span class="hljs-number">0</span>) { widthSize = mSingleSrcWidth; heightSize = mSingleSrcHeight; } measureChildren(widthSize, heightSize); } <span class="hljs-javadoc">/** * 计算图片的大小 * *<span class="hljs-javadoctag"> @param</span> widthMeasureSpec */</span> <span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">measureImgWidth</span>(<span class="hljs-keyword">int</span> widthMeasureSpec) { <span class="hljs-keyword">if</span> (mChildEdgeSize == <span class="hljs-number">0</span>) { <span class="hljs-keyword">int</span> measureSize = MeasureSpec.getSize(widthMeasureSpec); mChildEdgeSize = (measureSize - (mLineMaxCount - <span class="hljs-number">1</span>) * mPicSpace - getPaddingLeft() - getPaddingRight()) / mLineMaxCount; } } <span class="hljs-javadoc">/** * 获取可见图片数量 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> <span class="hljs-title">getVisibleChildCount</span>() { <span class="hljs-keyword">int</span> childCount = getChildCount(); <span class="hljs-keyword">int</span> count = <span class="hljs-number">0</span>; <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i < childCount; i++) { <span class="hljs-keyword">if</span> (getChildAt(i).getVisibility() != View.GONE) { count++; } } <span class="hljs-keyword">return</span> count; } <span class="hljs-javadoc">/** * 处理图片 * *<span class="hljs-javadoctag"> @param</span> imgs 图片地址列表 */</span> <span class="hljs-keyword">private</span> <span class="hljs-keyword">void</span> <span class="hljs-title">dealWithImgs</span>(String[] imgs) { <span class="hljs-keyword">if</span> (imgs == <span class="hljs-keyword">null</span> || imgs.length == <span class="hljs-number">0</span>) { <span class="hljs-keyword">return</span>; } mImgUrls = imgs; mImgCount = imgs.length; <span class="hljs-keyword">int</span> imgLen = mImgCount; <span class="hljs-keyword">int</span> maxChildCount = mMaxChildCount; <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i < maxChildCount; i++) { <span class="hljs-keyword">final</span> <span class="hljs-keyword">int</span> index = i; <span class="hljs-keyword">final</span> ImageView chileIv = (ImageView) getChildAt(i); chileIv.setOnClickListener(<span class="hljs-keyword">new</span> OnClickListener(index)); <span class="hljs-keyword">if</span> (i < imgLen) { <span class="hljs-keyword">if</span> (i == maxChildCount - <span class="hljs-number">1</span>) { <span class="hljs-keyword">if</span> (mImgCount > maxChildCount) { chileIv.setImageResource(<span class="hljs-keyword">this</span>.moreResId); <span class="hljs-keyword">continue</span>; } } chileIv.setVisibility(View.VISIBLE); String url = imgs[i]; Glide.with(getContext()).load(url).into(chileIv); } <span class="hljs-keyword">else</span> { chileIv.setVisibility(View.GONE); } } } }</code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li><li>50</li><li>51</li><li>52</li><li>53</li><li>54</li><li>55</li><li>56</li><li>57</li><li>58</li><li>59</li><li>60</li><li>61</li><li>62</li><li>63</li><li>64</li><li>65</li><li>66</li><li>67</li><li>68</li><li>69</li><li>70</li><li>71</li><li>72</li><li>73</li><li>74</li><li>75</li><li>76</li><li>77</li><li>78</li><li>79</li><li>80</li><li>81</li><li>82</li><li>83</li><li>84</li><li>85</li><li>86</li><li>87</li><li>88</li><li>89</li><li>90</li><li>91</li><li>92</li><li>93</li><li>94</li><li>95</li><li>96</li><li>97</li><li>98</li><li>99</li><li>100</li><li>101</li><li>102</li><li>103</li><li>104</li><li>105</li><li>106</li><li>107</li><li>108</li><li>109</li><li>110</li><li>111</li><li>112</li><li>113</li><li>114</li><li>115</li><li>116</li><li>117</li><li>118</li><li>119</li><li>120</li><li>121</li><li>122</li><li>123</li><li>124</li><li>125</li><li>126</li><li>127</li><li>128</li><li>129</li><li>130</li><li>131</li><li>132</li><li>133</li><li>134</li><li>135</li><li>136</li><li>137</li><li>138</li><li>139</li><li>140</li><li>141</li><li>142</li><li>143</li><li>144</li><li>145</li><li>146</li><li>147</li><li>148</li><li>149</li><li>150</li><li>151</li><li>152</li><li>153</li><li>154</li><li>155</li><li>156</li><li>157</li><li>158</li><li>159</li><li>160</li><li>161</li><li>162</li><li>163</li><li>164</li><li>165</li><li>166</li><li>167</li><li>168</li><li>169</li><li>170</li><li>171</li><li>172</li><li>173</li><li>174</li><li>175</li><li>176</li><li>177</li><li>178</li><li>179</li><li>180</li><li>181</li><li>182</li><li>183</li><li>184</li><li>185</li><li>186</li><li>187</li><li>188</li><li>189</li><li>190</li><li>191</li><li>192</li><li>193</li><li>194</li><li>195</li><li>196</li><li>197</li><li>198</li><li>199</li><li>200</li><li>201</li><li>202</li><li>203</li><li>204</li><li>205</li><li>206</li><li>207</li><li>208</li><li>209</li><li>210</li><li>211</li><li>212</li><li>213</li><li>214</li><li>215</li><li>216</li><li>217</li><li>218</li><li>219</li><li>220</li><li>221</li><li>222</li><li>223</li><li>224</li><li>225</li><li>226</li><li>227</li><li>228</li><li>229</li><li>230</li><li>231</li><li>232</li><li>233</li><li>234</li><li>235</li><li>236</li><li>237</li><li>238</li><li>239</li><li>240</li><li>241</li><li>242</li><li>243</li><li>244</li><li>245</li><li>246</li><li>247</li><li>248</li><li>249</li><li>250</li><li>251</li><li>252</li><li>253</li><li>254</li><li>255</li><li>256</li><li>257</li><li>258</li><li>259</li><li>260</li><li>261</li><li>262</li><li>263</li><li>264</li><li>265</li><li>266</li><li>267</li><li>268</li><li>269</li><li>270</li><li>271</li><li>272</li><li>273</li><li>274</li><li>275</li><li>276</li><li>277</li><li>278</li><li>279</li><li>280</li><li>281</li><li>282</li><li>283</li><li>284</li><li>285</li><li>286</li><li>287</li><li>288</li><li>289</li><li>290</li><li>291</li><li>292</li><li>293</li><li>294</li><li>295</li><li>296</li><li>297</li><li>298</li><li>299</li><li>300</li><li>301</li><li>302</li><li>303</li><li>304</li><li>305</li><li>306</li><li>307</li><li>308</li><li>309</li><li>310</li><li>311</li><li>312</li><li>313</li><li>314</li><li>315</li><li>316</li><li>317</li><li>318</li><li>319</li><li>320</li><li>321</li><li>322</li><li>323</li><li>324</li><li>325</li><li>326</li><li>327</li><li>328</li><li>329</li><li>330</li><li>331</li><li>332</li><li>333</li><li>334</li><li>335</li><li>336</li><li>337</li><li>338</li><li>339</li><li>340</li><li>341</li><li>342</li><li>343</li><li>344</li><li>345</li><li>346</li><li>347</li><li>348</li><li>349</li><li>350</li><li>351</li><li>352</li><li>353</li><li>354</li><li>355</li><li>356</li><li>357</li><li>358</li><li>359</li><li>360</li><li>361</li><li>362</li><li>363</li><li>364</li><li>365</li><li>366</li><li>367</li><li>368</li><li>369</li><li>370</li><li>371</li><li>372</li><li>373</li><li>374</li><li>375</li><li>376</li><li>377</li><li>378</li><li>379</li><li>380</li><li>381</li><li>382</li><li>383</li><li>384</li><li>385</li><li>386</li><li>387</li><li>388</li><li>389</li><li>390</li><li>391</li><li>392</li><li>393</li></ul>
代码中使用:
<code class="hljs avrasm has-numbering">multiImageView<span class="hljs-preprocessor">.setMaxChildCount</span>(<span class="hljs-number">12</span>)<span class="hljs-comment">;</span> multiImageView<span class="hljs-preprocessor">.setMoreImgBg</span>(R<span class="hljs-preprocessor">.mipmap</span><span class="hljs-preprocessor">.ic</span>_launcher)<span class="hljs-comment">;</span> multiImageView<span class="hljs-preprocessor">.setImgs</span>(urls, <span class="hljs-number">4</span>)<span class="hljs-comment">;</span> //如果只包含一张图片 //multiImageView<span class="hljs-preprocessor">.setSingleImg</span>(<span class="hljs-string">"http://img4.duitang.com/uploads/item/201502/11/20150211005650_AEyUX.jpeg"</span>,<span class="hljs-number">400</span>,<span class="hljs-number">300</span>)<span class="hljs-comment">;</span> multiImageView<span class="hljs-preprocessor">.setClickCallback</span>(new MultiImageView<span class="hljs-preprocessor">.ClickCallback</span>() { @Override public void callback(int index, String[] str) { Log<span class="hljs-preprocessor">.e</span>(<span class="hljs-string">"TAG"</span>, <span class="hljs-string">"dianjin le "</span> + index)<span class="hljs-comment">;</span> } })<span class="hljs-comment">;</span></code><ul style="" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li></ul>
效果图: