android 開發中常見問題合集(持續更新)

2021-07-10 11:25:00 字數 3447 閱讀 4598

通過一系列的查詢發現,是布局的問題,這個recyclerview的高度載入的資料專案一直是充滿的,不是按乙個螢幕上可見的個數統計。

最後發現時linearlayout的weight屬性導致的,巢狀的時候不使用weight,直接通過計算賦予高度值 就不會出現這個問題了。

未簽名的包可以正常分享,打了簽名的包卻不能分享

2.混淆的問題:文件上面沒有說,但是我新增了下面的混淆後就可以正常分享了

-keep class com.tencent.mm.sdk.openapi.wxmediamessage 

-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.wxmediamessage$imediaobject

-dontwarn com.tencent.mm.**

-keep class com.tencent.mm.**

6.fresco 載入本地的問題

將我們本地的位址通過uri.fromfile來處理而不是用以前使用的url.parse()來處理

例如:draweeutils.showthumb(uri.fromfile(new file(itemdata.getcommonimageurl())), cache.localpreview);

5.關於.9圖的drawabel的轉化異常

private bitmap drawable2bitmap(drawable drawable)  else if (drawable instanceof ninepatchdrawable)  else 

}

4.關於動態設定背景的顏色和背景的圓角的問題

--最近公司的乙個需求是根據後台傳遞過來的顏色設定背景的顏色,如果我們使用setbackgroundresource(r.drawable.***),但是如果是資源檔案設定background的話裡面的顏色是沒法動態設定進去的,所以就需要我們動態的去設定背景顏色和背景的圓角

--以下是主要的**:

gradientdrawable drawable = (gradientdrawable) mcontext.getresources().getdrawable(r.drawable.item_category_bg);

drawable.setcornerradius(util.dip2px(mcontext,10));

drawable.setcolor(color.parsecolor(categorybeens.get(position).getbgcolor()));

bgcolor.setbackgrounddrawable(drawable);

ps:item_category_bg就是自定義的背景xml,我的是很簡單的xml

<?xml version="1.0" encoding="utf-8"?>

3.獲取輸入法彈框的高度等問題

--解決思路:通過根檢視,拿到根檢視的高度, 獲取root在窗體的不可視區域高度(被其他view遮擋的區域高度),就使我們要的輸入法的高度了

final relativelayout root= (relativelayout) findviewbyid(r.id.layout_chat);//layout_chat是最外層的布局id

final relativelayout rl_input= (relativelayout) findviewbyid(r.id.rl_input);

if(constants.ismonitoring&&util.iskitkat())

} else

}root.getviewtreeobserver().removeglobalonlayoutlistener(null);

}});

}

2.同比例放大的問題

@suppresslint("newapi")

@override

protected void ondraw(canvas canvas)

}catch (exception e)

}

---出現的問題是:寬度很大的話會被壓縮

最後的解決方案是:

@suppresslint("newapi")

@override

protected void ondraw(canvas canvas) }catch (exception e) }

然後在imageloader的display方法中呼叫;

imageloader.getinstance().displayimage(regionlist.get(position), imageview,

imageloadermanager.getdisplayimageoptions(r.drawable.bg_normal_pic), new

******imageloadinglistener()

@override

public void onloadingfailed(string imageuri, view view, failreason failreason)

loading.setvisibility(view.gone);

imageview.setbackgroundresource(r.drawable.bg_normal_pic);

}@override

public void onloadingcomplete(string imageuri, view view, bitmap loadedimage)

}});

1.記憶體溢位的問題

// 解決載入 記憶體溢位的問題

// options 只儲存尺寸大小,不儲存到記憶體

bitmapfactory.options opts =newbitmapfactory.options();  

// 縮放的比例,縮放是很難按準備的比例進行縮放的,其值表明縮放的倍數,sdk中建議其值是2的指數值,值越大會導致不清晰

opts.insamplesize = 4;  

bitmap bmp =null;  

bmp = bitmapfactory.decoderesource(getresources(), mimageids[position],  

opts);  

// **

bmp.recycle();

開發中常見問題

6.開發中常見問題 uiscrollview的自動布局 1.怎麼確定scrollview的約束 通過新增view設定他的約束來控制uiscorllview的滾動範圍 size和center 1.以後盡量先設尺寸在設定center,從frame中取時,他會先確定中心點後沿4周擴散形成設定的尺寸 如果到...

開發中常見問題

本文目錄 這篇文章是專門用來記錄開發中一些常見的bug以及常用的零碎知識點,我會隔一段時間更新內容 回到頂部 1.重複呼叫2次loadview和viewdidload 最好不要在uiviewcontroller的loadview方法中改變狀態列的可視性 比如狀態列由顯示變為隱藏 或者由隱藏變為顯示 ...

開發中常見問題集錦

這篇文章是專門用來記錄開發中一些常見的bug以及常用的零碎知識點,我會隔一段時間更新內容 最好不要在uiviewcontroller的loadview方法中改變狀態列的可視性 比如狀態列由顯示變為隱藏 或者由隱藏變為顯示 因為會導致重複呼叫2次loadview和viewdidload方法 假設狀態列...