随笔分类 - android-widget
摘要:高度等于宽度的方形布局SquareLayout的实现 1.SquareLayout布局类的实现 class SquareLayout @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleA
阅读全文
摘要:方式1:getLeft()、getTop()、getRight()、getBottom() 参照父View的相对位置:获取该view相对于父View的左边距离、上边距离、右边距离、下边距离。 方式2:getX()、getY()、getRawX()、getRawY() 从MotionEvent事件获取
阅读全文
摘要:像素(px):对应一个rgba值。每个分量(比如r分量)占8b,所以rgba占32b,即一个字节byte。 分辨率:即屏幕一共有多少个像素。当然是(宽x高)个呀。比如分辨率一般有1920x1080等。 屏幕尺寸(in):手机对角线的长度,单位in(英寸)。常见有4.7英寸,5.5英寸。 像素密度(d
阅读全文
摘要:很多搞android开发的搞了几年都搞不清这些细节,我也是糊里糊涂地过来的,今天特意来梳理一下,有错误的地方请留言指教。 假设有一张1080x480的png图片大小50k,加载到内存占有多大内存空间呢? 答案是不确定。要注意:这里看到的50k是pc上压缩后的图片大小,而android手机加载的图片显
阅读全文
摘要:DialogFragment setOnDismissListener无效,查看源代码发现dismiss之前强制调用了setOnDismissListener(null),所以这样设置监听是不起作用的了 解决方法:重写DialogFragment的onDismiss方法。改为重写的方式啦。
阅读全文
摘要:PrimaryColor、SecondaryColor、AccentColor的区别和理解 PrimaryColor:主题颜色。app的主要颜色,即整个屏幕和所有控件的主要颜色,首选颜色。 SecondaryColor:提示性颜色。这颜色一般比PrimaryColor亮一些或暗一些,取决于白天模式还
阅读全文
摘要:1.xml代码 <activity android:hardwareAccelerated="true" android:name=".WebViewActivity" android:configChanges="orientation|keyboardHidden|screenSize" and
阅读全文
摘要:class RoundImageView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : AppCompatImageView(context, at
阅读全文
摘要:public static Bitmap generateBitmap(String text,int textSizePx,int textColor){ TextPaint textPaint = new TextPaint(); textPaint.setTextSize(textSizePx
阅读全文
摘要:fun loadPreviewImage(context: Context, url: String, target: ImageView) { val requestOptions = RequestOptions() .diskCacheStrategy(DiskCacheStrategy.AL
阅读全文
摘要:fun isChinese(str: String): Boolean { if (str.isEmpty()) { return false } for (c in str.toCharArray()) { if (c >= 0x4E00.toChar() && c <= 0x9FA5.toCha
阅读全文
摘要:override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val ctx = context ?: return super.onCreateDialog(savedInstanceState) var builder: A
阅读全文
摘要:private void tryFullScreen(boolean fullScreen) { if (activity instanceof AppCompatActivity) { ActionBar supportActionBar = ((AppCompatActivity) activi
阅读全文
摘要:android开发时,有时我们想灵活修改样式灵活,所以想使用富文本显示方式展示,一般我们有以下两种方式:1.使用TextView显示,使用textView.setText(Html.from(html))显示富文本内容2.使用WebView加载,使用webView.loadData()或者webVi
阅读全文
摘要:android没有提供给我们直接设置双击事件的方法,当然可以使用setOnTouchListener使用,这里提供一种简洁的实现方法使用kotlin实现代码如下: private var lastClickTime = 0L textView.setOnClickListener { val cli
阅读全文
摘要:最近使用百度地图开发,在fragment里面使用百度地图,切换tab的时候,fragment里面的百度地图黑屏、错位导致显示mark不准确。解决方法就是将 MapView 换为 TextureMapView 即可
阅读全文
摘要:Paint.FontMetrics.top:基准位置上方 最大高度 Paint.FontMetrics.ascent:基准位置上方 推荐高度 Paint.FontMetrics.baseline 基准位置,为0 Paint.FontMetrics.descent 基准位置下方 推荐高度 Paint.
阅读全文
摘要:实际开发我们有时需要判断比较两个对象是否相同,通常做法是重写对象的equals方法。但重写equals方法时,一般我们也会重写hashCode方法。其实如果该对象不会当作Map里的key,不重写hashCode方法也是没啥影响的。想重写hashCode方法不知道该怎么写?下面是重写equals方法时,也重写hashCode方法的通用写法:final class ResourceCacheKey ...
阅读全文
摘要://给ExpandableListView设置分组点击事件binding.elvContactGroup.setOnGroupClickListener { parent, _, groupPosition, _ -> if (parent.isGroupExpanded(groupPosition)) { parent.collapseGroup(groupPosition) } else {
阅读全文
摘要:class ClickURLSpan(url: String) : URLSpan(url) { companion object { fun stripUnderline(textView: TextView) { textView.movementMethod = LinkMovementMethod.getInstance() ...
阅读全文