Android开发小结——UI开发

来源:互联网 发布:贷款软件 编辑:程序博客网 时间:2024/05/21 10:21

一、普通UI

1、图表
  Android里的图表可以使用AChartEngine绘制,但是在画柱状图时发现,通过AChartEngine现有方法无法绘制坐标轴箭头,无法去除x轴的刻度,无法更换柱状图上的字体的颜色。
  所以我自己画了一个柱状图的控件,并进行了封装,使用方法如下:

  GitHub地址如下:
  
2、自定义View添加XML属性
  参考资料:http://blog.csdn.net/double2hao/article/details/52117503

  • 第一步 在res–>values文件夹下创建一个myattrs.xml文件,如图:
    这里写图片描述

  • 第二步 在上面的xml里定义你要新增的xml属性

<?xml version="1.0" encoding="utf-8"?><resources>    <declare-styleable name="MyStackBarChart">        <attr name="labelYText" format="string"/>        <attr name="labelYPaddingLeft" format="float"/>        <attr name="labelYPaddingRight" format="float"/>        <attr name="labelYPaddingTop" format="float"/>        <attr name="labelYPaddingBottom" format="float"/>    </declare-styleable></resources>
  • 第三步 将上述的xml的name关联到自定义view的构造方法
public StackBarChart(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        TypedArray typedArray = context.obtainStyledAttributes(attrs,R.styleable.MyStackBarChart);        labelY1Text = typedArray.getString(R.styleable.MyStackBarChart_labelXText);        labelY1PaddingLeft = typedArray.getDimensionPixelSize(R.styleable.MyStackBarChart_labelYPaddingLeft,0);        lableY1PaddingRight = typedArray.getDimensionPixelSize(R.styleable.MyStackBarChart_labelYPaddingRight,0);        lableY1PaddingTop = typedArray.getDimensionPixelSize(R.styleable.MyStackBarChart_labelYPaddingTop,0);        lableY1PaddingBottom = typedArray.getDimensionPixelSize(R.styleable.MyStackBarChart_labelYPaddingBottom,0);        initPaint();    }
  • 第四步 在目标xml声明命名空间
xmlns:my_stack="http://schemas.android.com/apk/res-auto"
  • 第五步 使用自定义的xml属性
    注意:自己定义的属性不会代码自动补全
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    xmlns:my_stack="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.weihy.mygithubproject.MainActivity">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Hello World!" />    <com.example.weihy.mygithubproject.StackBarChart        android:layout_width="match_parent"        android:layout_height="match_parent"        my_stack:labelYText="hello"        my_stack:labelYPaddingLeft="10dp"    /></LinearLayout>

二、动画

原创粉丝点击