【安卓开发 】Android初级开发(五)自定义View
生活随笔
收集整理的這篇文章主要介紹了
【安卓开发 】Android初级开发(五)自定义View
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.自定義View的構(gòu)造函數(shù)調(diào)用的場(chǎng)景
package com.sina.myapplication;import android.content.Context; import android.util.AttributeSet; import android.view.View;import androidx.annotation.Nullable;public class Textview extends View {//在new Textview類的時(shí)候調(diào)用public Textview(Context context) {super(context);}//在layout布局中使用public Textview(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}//在layout布局中使用, 并且攜帶Stylepublic Textview(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);//布局的寬高都是由此指定//指定控制的狂傲,需要測(cè)量//可以獲取XML中設(shè)置的寬高的模式int widthMode = MeasureSpec.getMode(widthMeasureSpec);int heightMode = MeasureSpec.getMode(heightMeasureSpec);//在布局中指定了wrap_contentif (widthMode == MeasureSpec.AT_MOST);//在布局中獲取一個(gè)確切的值,match_parent,fill_parentif(widthMode == MeasureSpec.EXACTLY);//在布局中盡可能大,ListView,ScrollView中會(huì)使用if(widthMode == MeasureSpec.UNSPECIFIED);} }2.ListView,ScrollView顯示不全的解決方法。方案為重寫onMeasure該方法。
package com.sina.myapplication;import android.content.Context; import android.util.AttributeSet; import android.view.View;import androidx.annotation.Nullable;public class MyListView extends View {public MyListView(Context context) {super(context);}public MyListView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public MyListView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);/*widthMeasureSpec,heightMeasureSpec:總計(jì)32位,會(huì)包含兩個(gè)信息,1.值,30位,MAX_VALUE>>2。 2.模式,MeasureSpec.AT_MOST 2位。*/super.onMeasure(widthMeasureSpec, heightMeasureSpec);} }?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的【安卓开发 】Android初级开发(五)自定义View的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓刷机苹果系统教程(安卓刷机苹果)
- 下一篇: 【安卓开发 】Android初级开发(六