李代桃僵-列表裡橫豎展示圖片動態調整高寬因複用引起的錯位問題
<RelativeLayout android:id="@+id/rl_pic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@id/view_top" android:layout_below="@id/item_taskstatus_title" > <FrameLayout android:id="@+id/fl_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" /> <android.support.v7.widget.RecyclerView android:id="@+id/rv_pic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" /> </RelativeLayout>
複用佈局,不復用iamgeview,用framelayout代替imageview的位置,動態新增imageview,這樣就不會顯示錯亂了//單圖、多圖顯示 final ArrayList<String> imageSourceList = new ArrayList<>(); List<PictureBean> picture = taskStatusBeans.get(groupPosition).getSource_list(); for (int index = 0; index < picture.size(); index++) { PictureBean pictureBean = picture.get(index); String url = CommonUtils.changeHeaderUrl(pictureBean.getPicid(), app.getTokenBean().getAccessToken(), "img", String.valueOf((int) (app.getWidthPixels() * 0.36f)), String.valueOf((int) (app.getWidthPixels() * 0.36f))); imageSourceList.add(url); } if (imageSourceList.size() > 1) { InfoPicAdapter personAdapter = new InfoPicAdapter(context,imageSourceList,imageLoaderUtil); holder.rv_pic.setLayoutManager(new GridLayoutManager(context,3)); holder.rv_pic.setAdapter(personAdapter); holder.rv_pic.setVisibility(View.VISIBLE); holder.fl_image.setVisibility(View.GONE); } else if(imageSourceList.size() > 0){ holder.rv_pic.setVisibility(View.GONE); holder.fl_image.setVisibility(View.VISIBLE); PictureBean pictureBean = picture.get(0); if (TextUtils.isEmpty(pictureBean.getWidth()) || TextUtils.equals(pictureBean.getWidth(), "0") || TextUtils.isEmpty(pictureBean.getHeight()) || TextUtils.equals(pictureBean.getHeight(), "0")) { //設定圖片寬高 app.setMLayoutParam(holder.fl_image, 0.36f, 0.36f); } else { int mw = Integer.parseInt(pictureBean.getWidth()); int mh = Integer.parseInt(pictureBean.getHeight()); int maxSize = (int) (app.getWidthPixels() * 0.36f); if (mw > mh) { //計算比例 BigDecimal proportion = new BigDecimal(maxSize).divide(new BigDecimal(mw), 3, BigDecimal.ROUND_HALF_UP); //按照比例換算圖片高度 float h = new BigDecimal(mh).multiply(proportion).divide(new BigDecimal(app.getWidthPixels()), 3, BigDecimal.ROUND_HALF_UP).floatValue(); //設定圖片寬高 app.setMLayoutParam(holder.fl_image, 0.36f, h); } else{ //計算比例 BigDecimal proportion = new BigDecimal(maxSize).divide(new BigDecimal(mh), 3, BigDecimal.ROUND_HALF_UP); //按照比例換算圖片高度 float w = new BigDecimal(mw).multiply(proportion).divide(new BigDecimal(app.getWidthPixels()), 3, BigDecimal.ROUND_HALF_UP).floatValue(); //設定圖片寬高 app.setMLayoutParam(holder.fl_image, w, 0.36f); } } ImageView iv = new ImageView(getMyActivity()); iv.setScaleType(ImageView.ScaleType.CENTER_CROP); holder.fl_image.addView(iv); ImageLoader imageLoader1 = new ImageLoader.Builder() .url(imageSourceList.get(0)) .imgView(iv) .placeHolder(R.mipmap.ic_loading) .errorHolder(R.mipmap.ic_load_fail) .scaleType(1) .build(); imageLoaderUtil.loadImage(context, imageLoader1); holder.fl_image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, ZoomViewPagerActivity.class); intent.putExtra("index", 0); intent.putStringArrayListExtra("imageUrls", imageSourceList); intent.putExtra("max", imageSourceList.size()); intent.putExtra("isShow", 1); context.startActivity(intent); } }); }else { holder.rv_pic.setVisibility(View.GONE); holder.fl_image.setVisibility(View.GONE); }
相關推薦
李代桃僵-列表裡橫豎展示圖片動態調整高寬因複用引起的錯位問題
<RelativeLayout android:id="@+id/rl_pic" android:layout_width="wrap_content" android:layout_heigh
python 學習 D13 叠代器 生成器 列表推導式 生成器表達式
true instance ins class 列表推導 叠代器協議 叠代器 方法 叠代 02,叠代器 可叠代對象: 內部含有__iter__ 遵循可叠代協議dir 顯示裏面的所有方法 有 __iter__ 的方法就是 可叠代對象 # print(dir(
【python 列表裡的列表】列表的扁平化
目標:列表含有子列表展開成一個列表,列表的扁平化 如: [['智利', '葡萄牙', '德國']] 轉換為 ['智利', '葡萄牙', '德國'] # 程式碼實現 k1=[['智利', '葡萄牙', '德國']] k2 = sum(k1, []) print(k2)
讀書筆記——Python中的迭代器和列表解析
Python所謂的迭代協議 有__next__方法的物件會前進到下一個結果,在一系列結果的末尾時,則會引發StopIteration。在Python中,任何這類物件都認為是可迭代的。任何這類物件也能以for迴圈或其他迭代工具遍歷,因為所有迭代工具內部工作起來都是在每次迭代中呼叫__next__,
又一個隱形富二代!這個圈裡最摳的藝人擁有18家公司
阿里巴巴官方釋出微博稱,連續幾日,一篇名為《阿里員工透露:馬總早移走 1200 億人民幣!網友:不愧是老師》的文章被有組織的進行惡意傳播。阿里巴巴官方釋出微博稱,連續幾日,一篇名為《阿里員工透露:馬總早移走 1200 億人民幣!網友:不愧是老師》的文章被有組織的進行惡意傳播。 對此,阿里表示,該文完全捏造事
python列表裡的字典元素去重
去重 def list_dict_duplicate_removal(): data_list = [{"a": "123", "b": "321"}, {"a": "123", "b": "321"}, {"b": "321", "a": "123"}] run_function
jsp列表裡某個欄位中文亂碼
網上查的再jsp也第一行加 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 我原本就有 所以無效 斷點看control裡 看
小程式點選迴圈列表裡的字型變色
這篇部落格是在上一篇部落格的基礎上改進的。上一篇是橫向滑動列表。而點選更改字型則是在此基礎上新增的新功能。直接上程式碼 js檔案: //獲取應用例項 var lists = [] Page({ /** * 頁面的初始資料 */ data: { list: [
對列表裡的字典按年齡從小到大排序
對列表裡的字典按年齡從小到大排序 infors=[{'name':'laowang','age':10},{'name':'xiaoming','age':30},{'name':'hehe','age':20}] infors.sort(key=lambda x:x['age'])
mysql從服務列表裡消失了
為了學習mysql,就在自己的PC上安裝了mysql服務,記得第一次成功連線mysql還高興了好一陣子,後來做測試就直接在公司的SIT環境上了,一段時間之後,臨時需要連線一下本地資料庫的,竟然怎麼也連不上,去windows服務列表一看,發現localhost從服務列表裡消失了,啟動不了mysq
python迭代器-生成器-列表推導式-生成器表示式-day11-12
生成器Generator 生成器函式一個包含yield關鍵字的函式就是一個生成器函式。yield可以為我們從函式中返回值,但是yield又不同於return,return的執行意味著程式的結束,呼叫生成器函式不會得到返回的具體的值,而是得到一個可迭代的物件。每一次獲取這個可
解決方法:①MySQL 閃退 ②服務列表裡找不到MySQL ③MySQL服務無法啟動
安裝MySQL之後輸密碼之後閃退:有三種情況 **1.**最簡單的, MySQL如果你輸錯了密碼他就會閃退的。 **2.**如果你剛安裝MySQL,並且下載安裝過程中,他沒有提示你填寫使用者名稱和密碼,那你就是預設使用者名稱root,預設密碼是沒密碼,進去之
給列表裡的 imge 設定滑鼠經過事件
<ul> <li><img src="1.jpg" onmouseover="changeColor(this)"></li> <li><img src="2.jpg" onmouseover="changeC
python 可迭代序列(列表,元組,字串),實現鄰近去重,順序不變
碼字不易,轉載請標明出處… 鄰近去重程式碼實現如下: def special_func_order(seq): list_ = [] # 定義一個空列表,用來儲存判斷後的資料 for i in range(len(seq) - 1): # 假如 le
vs2017開發安卓應用時使用逍遙安卓之類的模擬器除錯,vs除錯列表裡沒有模擬器的解決辦法
開啟vs的adb命令列,如果使用的逍遙安卓,執行如下命令(如果是其他模擬器把相應埠換掉就行了,如果adb devices提示模擬器離線,重啟下模擬器再重新connect即可):adb connect 1
Qt自定義Combobox實現列表上拉展示
廢話 由於最近專案需要,想用一個能夠上拉的Combobox,但是試了各種方法發現QCombobox並不能達到我需要的效果,所以決定自己寫一個。 方法 其實很簡單,combobox可認為是按鈕和一個列表組成,按鈕由QPushButton來實現,列表由QLi
Python整理(迭代目錄和列表應用)
buildList = []#定義一個空列表用於存放目錄中需要的檔名 for dirPath, dirNames, fileNames in os.walk(gPathSrc + "/../BUILD_RECORD"): #迭代目錄 fo
python:迭代器和列表解析
建立迭代器: 對一個物件呼叫 iter() 就可以得到它的迭代器. 它的語法如下: iter(obj) iter(func, sentinel ) 如果你傳遞一個引數給 iter() , 它會檢查你傳遞的是不是一個序列, 如果是, 那麼很簡單:根據索引從 0 一直迭代到序
小程式分頁,滾動條滾到底部時往列表裡新增資料
最近做小程式分頁,可以有兩種處理方式,一種是滾動到底部顯示下一頁,另一種是滾動到底部,往列表里加一頁資料,我用的是第二種,效果比第一種好多了 wxml:列表底部新增文字提示: <view wx:if="{{goodsList.length > 0}}" cla
用foreach迭代顯示在form裡,input輸入框的name相同的解決方法
<?phpif(isset($_POST['submit'])){$users = $_POST['user'];$nums = $_POST['num'];foreach($users as $key=>$val){echo 'user ',$key,' =