Day4

今天晚饭的时候手贱买了杯咖啡,咖啡真的能醒神但是肠胃爆炸。我最近本来肠胃就很差了真的爆炸。

今天干爹六连胜啦真的开心啊~

咳咳,早上成功的按照“微信6.0”把主界面的导航栏弄好了。然后弄“我的”界面,就是写fragment的layout.这个创建的时候自动生成的是FrameLayout,导致我以为fragment就是适配FrameLayout的,然后就没有改,想直接在里面写,结果FrameLayout是 不能内嵌LinearLayout的,会有个黄色的感叹号,结果这个错误卡了挺久,后来改好了,界面的实现也不难。

就是感觉边框的颜色,控件的背景颜色,这种定下来比较麻烦,找头像等图标也麻烦;或许我不该自己随便去定义颜色,可以直接看看有没有开源的控件,然后用他们的xml套用。

今天的自定义Icon比较有意思,了解了Android用来画图的几点要素:

① Canvas:画布,他有个方法叫draw,就是把某Bitmap画到它自己身上一样。

② Bitmap: 就是存储图片的信息

③ Paint:定制画笔的颜色和样式

 private Canvas mCanvas; //一个Canvas画布,绘制Bitmap操作;
 private Bitmap mBitmap; //Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作。
 private Paint mPaint;  //绘制的画笔Paint(颜色和样式)

mBitmap = Bitmap.createBitmap(getMeasuredWidth(), getMeasuredHeight(),
                Config.ARGB_8888);
        mCanvas = new Canvas(mBitmap);
        mPaint = new Paint();

        mPaint.setColor(mColor);
        mPaint.setAntiAlias(true);
        mPaint.setDither(true);
        mPaint.setAlpha(alpha);
        mCanvas.drawRect(mIconRect, mPaint);//mIconRect是方位,在onMeasure()方法中被计算得知
        mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
        mPaint.setAlpha(255);
        mCanvas.drawBitmap(mIconBitmap, null, mIconRect, mPaint);//绘图

 

 

一些我今天发生的小错误,记录一波:1,因为自定义view,所以在运用View的时候要调用你自己写的那个view类,所以需要你再命名空间中声明。由于我的attr.xml中的属性和系统自带的发生了重复,所以导致了我导入命名空间的时候会有红色的波浪线提示错误。其实把attr.xml中的属性名改了就好了。

2,在Fragment中写findViewById并不是想Activity一样写在onCreat()方法中,而是写在onCreatView()方法中。并且要先通过Inflat获取到view,再通过view获取到控件的对象。

View view = inflater.inflate(R.layout.fragment_fragment4, container, false);
mImageView = (ImageView)view.findViewById(R.id.myPhoto);

3,viewPager的那个Fragment是一定要import v4的那个Fragment包,而不是app那个包,会报错的。

 

以后真的不能喝咖啡了啊,肠胃真的受不了了,困的时候宁可洗把脸的。

早点休息哈~

posted @ 2016-04-08 23:50  一路向北280  阅读(117)  评论(0编辑  收藏  举报