java - View的渲染完畢事件是什么?
問(wèn)題描述
問(wèn)題描述現(xiàn)在有這么一個(gè)簡(jiǎn)單的Fragment:
public class Level1Fragment extends Fragment { TextView tv; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {ViewGroup v=inflater.inflate(R.layout.activity_test,null);tv= (TextView) v.findViewById(R.id.level1_textview);tv.setText('啦啦啦');return v; } //給View截圖,代碼應(yīng)該沒(méi)有問(wèn)題 public static Bitmap convertViewToBitmap(View view){view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());view.buildDrawingCache();return view.getDrawingCache(); }
現(xiàn)在,我想在Fragment剛加載完成時(shí),獲取這個(gè)TextView的截圖,我應(yīng)該把代碼放在哪個(gè)事件里?
嘗試解決我嘗試過(guò)tv.postDelayed()、tv.post()以及tv.getViewTreeObserver().addOnPreDrawListener()。
嘗試用的代碼也貼出來(lái)吧:
@Override public void onResume() {super.onResume();tv.postDelayed(new Runnable() { @Override public void run() {final Bitmap bit=convertViewToBitmap(tv);//iv只是個(gè)簡(jiǎn)單的ImageView,與本問(wèn)題無(wú)關(guān)iv.setImageBitmap(bit);iv.startAnimation(new AlphaAnimation(1,0)); }},100); }
但是都無(wú)法獲取到。
問(wèn)題所以,請(qǐng)問(wèn)到底該用什么方法來(lái)正確獲取到tv的截圖呢?
(btw,F(xiàn)ragment是直接通過(guò)FragmentTransaction.replace()顯示的,而不是通過(guò)ViewPager,因此生命周期應(yīng)該不會(huì)被打亂..)
求解惑!
問(wèn)題解答
回答1:你說(shuō)的這三種方法前兩種都是可以的啊,最后一種有問(wèn)題,應(yīng)該是getViewTreeObserver().addOnGlobalLayoutListener()
相關(guān)文章:
1. android - weex 項(xiàng)目createInstanceReferenceError: Vue is not defined2. javascript - 如圖,百度首頁(yè),查看源代碼為什么什么都沒(méi)有?3. 網(wǎng)頁(yè)爬蟲(chóng) - python requests爬蟲(chóng),如何post payload4. npm鏡像站全新上線5. html - 關(guān)于CSS實(shí)現(xiàn)border的0.5px設(shè)置?6. PHPExcel表格導(dǎo)入數(shù)據(jù)庫(kù)怎么導(dǎo)入7. android - 哪位大神知道java后臺(tái)的api接口的對(duì)象傳到前端后輸入日期報(bào)錯(cuò),是什么情況?求大神指點(diǎn)8. pdo 寫(xiě)入到數(shù)據(jù)庫(kù)的內(nèi)容為中文的時(shí)候?qū)懭雭y碼9. PHP類(lèi)封裝的插入數(shù)據(jù),總是插入不成功,返回false;10. vue2.0+webpack 如何使用bootstrap?
