日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

【安卓开发 】Android初级开发(五)自定义View

發(fā)布時(shí)間:2023/12/3 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【安卓开发 】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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。