android开发其他零散知识点

2018-11-09  本文已影响12人  liboxiang
<android.support.v7.widget.AppCompatTextView
        android:layout_width="match_parent"
        android:layout_height="35dp"
        android:gravity="center"
        android:textSize="16sp"
        android:maxLines="1"
        app:autoSizeTextType="uniform"
        app:layout_constraintBottom_toTopOf="@id/list_base_bottom" />
public static void main(String[] args) 
{ 
Set<Person> set = new HashSet<Person>(); 
Person p1 = new Person("唐僧","pwd1",25); 
Person p2 = new Person("孙悟空","pwd2",26); 
Person p3 = new Person("猪八戒","pwd3",27); 
set.add(p1); 
set.add(p2); 
set.add(p3); 
System.out.println("总共有:"+set.size()+" 个元素!"); //结果:总共有:3 个元素! 
p3.setAge(2); //修改p3的年龄,此时p3元素对应的hashcode值发生改变 

set.remove(p3); //此时remove不掉,造成内存泄漏
set.add(p3); //重新添加,居然添加成功 
System.out.println("总共有:"+set.size()+" 个元素!"); //结果:总共有:4 个元素! 
for (Person person : set) 
{ 
System.out.println(person); 
} 
}
Drawable dr = getResources().getDrawable(R.drawable.search_icon);
        Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
// Scale it to 50 x 50
        Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap, 10, 10, true);
        Drawable d = new BitmapDrawable(getResources(), bitmap1);
public static int dpFromPx(final Context context, final float px) {
        return (int)(px / context.getResources().getDisplayMetrics().density + 0.5f);
    }

    public static int pxFromDp(final Context context, final int dp) {
        return (int)(dp * context.getResources().getDisplayMetrics().density + 0.5f);
    }

    public static int spFromPx(final Context context, final float px) {
        return (int)(px / context.getResources().getDisplayMetrics().scaledDensity + 0.5f);
    }

    public static int pxFromSp(final Context context, final int sp) {
        return (int)(sp * context.getResources().getDisplayMetrics().scaledDensity + 0.5f);
    }

With merge:

LinearLayout (root)
|
TextView

With include:

LinearLayout (root)
|
LinearLayout
|
TextView

ViewStub
ViewStub 是一个不可见的,大小为0的视图,可以在运行过程中延时加载布局资源。当ViewStub被设置成可见,或者它的inflate() 方法被调用的时候,布局资源才会被填充,然后ViewStub本身就会被填充起来的布局资源替换掉。也就是说 ViewStub 被设置成可见或者它的inflate() 方法被调用之后,在视图树中就不存在了。被填充的布局在替换ViewStub的时候会使用ViewStub的布局参数(LayoutParameters),比如 width ,height等。此外,你也可以通过ViewStub的inflateId 属性定义或者重写 被填充布局资源的id。
https://www.jianshu.com/p/175096cd89ac

上一篇下一篇

猜你喜欢

热点阅读