Commit bcafe53a0ae5e15d158ef410fa2c88c1a148ad8a
1 parent
42f6a92a
Exists in
yxb_dev
and in
2 other branches
no message
Showing
10 changed files
with
411 additions
and
10 deletions
 
Show diff stats
app/src/main/java/com/shunzhi/parent/adapter/ReportAdapter.java
0 → 100644
| @@ -0,0 +1,52 @@ | @@ -0,0 +1,52 @@ | ||
| 1 | +package com.shunzhi.parent.adapter; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +import android.content.Context; | ||
| 5 | +import android.view.LayoutInflater; | ||
| 6 | +import android.view.View; | ||
| 7 | +import android.view.ViewGroup; | ||
| 8 | + | ||
| 9 | +import com.share.mvpsdk.base.adapter.BaseRecyclerViewAdapter; | ||
| 10 | +import com.share.mvpsdk.base.adapter.BaseRecyclerViewHolder; | ||
| 11 | +import com.shunzhi.parent.R; | ||
| 12 | +import com.shunzhi.parent.bean.ReportBean; | ||
| 13 | +import com.shunzhi.parent.views.ProgressView; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * Created by Administrator on 2018/3/9 0009. | ||
| 17 | + */ | ||
| 18 | + | ||
| 19 | +public class ReportAdapter extends BaseRecyclerViewAdapter<ReportBean> { | ||
| 20 | + | ||
| 21 | + Context context; | ||
| 22 | + | ||
| 23 | + public ReportAdapter(Context context) { | ||
| 24 | + this.context = context; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + | ||
| 28 | + @Override | ||
| 29 | + public BaseRecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | ||
| 30 | + View view = LayoutInflater.from(context).inflate(R.layout.item_report, null); | ||
| 31 | + return new MyViewHolder(view); | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + private class MyViewHolder extends BaseRecyclerViewHolder<ReportBean> { | ||
| 35 | + | ||
| 36 | + ProgressView ringView; | ||
| 37 | + | ||
| 38 | + | ||
| 39 | + public MyViewHolder(View view) { | ||
| 40 | + super(view); | ||
| 41 | + ringView = view.findViewById(R.id.ring); | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + @Override | ||
| 45 | + public void onBindViewHolder(ReportBean object, int position) { | ||
| 46 | + ringView.setMaxCount(100.0f); | ||
| 47 | + ringView.setCurrentCount(100); | ||
| 48 | + ringView.setScore(100); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + } | ||
| 52 | +} | 
app/src/main/java/com/shunzhi/parent/bean/ReportBean.java
0 → 100644
app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java
| 1 | package com.shunzhi.parent.ui.fragment; | 1 | package com.shunzhi.parent.ui.fragment; | 
| 2 | 2 | ||
| 3 | -import android.content.Context; | ||
| 4 | -import android.net.Uri; | ||
| 5 | import android.os.Bundle; | 3 | import android.os.Bundle; | 
| 6 | -import android.support.v4.app.Fragment; | ||
| 7 | -import android.view.LayoutInflater; | 4 | +import android.support.annotation.NonNull; | 
| 5 | +import android.support.annotation.Nullable; | ||
| 6 | +import android.support.v7.widget.LinearLayoutManager; | ||
| 7 | +import android.support.v7.widget.RecyclerView; | ||
| 8 | import android.view.View; | 8 | import android.view.View; | 
| 9 | -import android.view.ViewGroup; | ||
| 10 | 9 | ||
| 10 | +import com.share.mvpsdk.base.BasePresenter; | ||
| 11 | +import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment; | ||
| 11 | import com.shunzhi.parent.R; | 12 | import com.shunzhi.parent.R; | 
| 13 | +import com.shunzhi.parent.adapter.ReportAdapter; | ||
| 14 | +import com.shunzhi.parent.bean.ReportBean; | ||
| 12 | 15 | ||
| 13 | -public class ReportFragment extends Fragment { | 16 | +import java.util.ArrayList; | 
| 17 | +import java.util.List; | ||
| 18 | + | ||
| 19 | +public class ReportFragment extends BaseMVPCompatFragment { | ||
| 20 | + RecyclerView recycler_report; | ||
| 21 | + ReportAdapter reportAdapter; | ||
| 22 | + List<ReportBean>list=new ArrayList<>(); | ||
| 23 | + | ||
| 24 | + @NonNull | ||
| 25 | + @Override | ||
| 26 | + public BasePresenter initPresenter() { | ||
| 27 | + return null; | ||
| 28 | + } | ||
| 14 | 29 | ||
| 15 | @Override | 30 | @Override | 
| 16 | - public View onCreateView(LayoutInflater inflater, ViewGroup container, | ||
| 17 | - Bundle savedInstanceState) { | ||
| 18 | - // Inflate the layout for this fragment | ||
| 19 | - return inflater.inflate(R.layout.fragment_report, container, false); | 31 | + public int getLayoutId() { | 
| 32 | + return R.layout.fragment_report; | ||
| 20 | } | 33 | } | 
| 21 | 34 | ||
| 35 | + @Override | ||
| 36 | + public void initUI(View view, @Nullable Bundle savedInstanceState) { | ||
| 37 | + recycler_report = view.findViewById(R.id.recycle_report); | ||
| 38 | + recycler_report.setLayoutManager(new LinearLayoutManager(getActivity())); | ||
| 39 | + reportAdapter=new ReportAdapter(getActivity()); | ||
| 40 | + ReportBean reportBean=new ReportBean(); | ||
| 41 | + list.add(reportBean); | ||
| 42 | + list.add(reportBean); | ||
| 43 | + reportAdapter.addAll(list); | ||
| 44 | + recycler_report.setAdapter(reportAdapter); | ||
| 45 | + | ||
| 22 | 46 | ||
| 47 | + | ||
| 48 | + } | ||
| 23 | } | 49 | } | 
app/src/main/java/com/shunzhi/parent/views/ProgressView.java
0 → 100644
| @@ -0,0 +1,181 @@ | @@ -0,0 +1,181 @@ | ||
| 1 | +package com.shunzhi.parent.views; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.graphics.Canvas; | ||
| 5 | +import android.graphics.Color; | ||
| 6 | +import android.graphics.Matrix; | ||
| 7 | +import android.graphics.Paint; | ||
| 8 | +import android.graphics.Paint.Cap; | ||
| 9 | +import android.graphics.Paint.Style; | ||
| 10 | +import android.graphics.PorterDuff; | ||
| 11 | +import android.graphics.PorterDuffXfermode; | ||
| 12 | +import android.graphics.RectF; | ||
| 13 | +import android.graphics.SweepGradient; | ||
| 14 | +import android.util.AttributeSet; | ||
| 15 | +import android.view.View; | ||
| 16 | + | ||
| 17 | +/*** | ||
| 18 | + * 自定义圆弧进度条 | ||
| 19 | + * | ||
| 20 | + * @author liujing | ||
| 21 | + */ | ||
| 22 | +public class ProgressView extends View { | ||
| 23 | + | ||
| 24 | + //分段颜色 | ||
| 25 | + private static final int[] SECTION_COLORS = {Color.RED, Color.YELLOW,Color.GREEN}; | ||
| 26 | + private static final String[] ALARM_LEVEL = {"", "", "", ""}; | ||
| 27 | + private float maxCount; | ||
| 28 | + private float currentCount; | ||
| 29 | + private int score; | ||
| 30 | + private String crrentLevel; | ||
| 31 | + private Paint mPaint; | ||
| 32 | + private Paint mTextPaint; | ||
| 33 | + private int mWidth, mHeight; | ||
| 34 | + | ||
| 35 | + public ProgressView(Context context, AttributeSet attrs, int defStyleAttr) { | ||
| 36 | + super(context, attrs, defStyleAttr); | ||
| 37 | + init(context); | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + public ProgressView(Context context, AttributeSet attrs) { | ||
| 41 | + this(context, attrs, 0); | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + public ProgressView(Context context) { | ||
| 45 | + this(context, null); | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + private void init(Context context) { | ||
| 49 | + mPaint = new Paint(); | ||
| 50 | + mTextPaint = new Paint(); | ||
| 51 | + } | ||
| 52 | + | ||
| 53 | + @Override | ||
| 54 | + protected void onDraw(Canvas canvas) { | ||
| 55 | + super.onDraw(canvas); | ||
| 56 | + initPaint(); | ||
| 57 | + RectF rectBlackBg = new RectF(20, 20, mWidth - 20, mHeight - 20); | ||
| 58 | + canvas.drawArc(rectBlackBg, 0, 275, false, mPaint); | ||
| 59 | + mPaint.setColor(getColor(score)); | ||
| 60 | + canvas.drawText(score + "%", mWidth / 2, mHeight / 2, mTextPaint); | ||
| 61 | + mTextPaint.setTextSize(40); | ||
| 62 | + | ||
| 63 | + SweepGradient sweepGradient = new SweepGradient(mWidth / 2, mWidth / 2, SECTION_COLORS, null); | ||
| 64 | + Matrix matrix = new Matrix(); | ||
| 65 | + matrix.setRotate(120, this.mWidth / 2, mWidth / 2); | ||
| 66 | + sweepGradient.setLocalMatrix(matrix); | ||
| 67 | + float section = currentCount / maxCount; | ||
| 68 | + mPaint.setShader(sweepGradient); | ||
| 69 | + | ||
| 70 | + mPaint.setShader(sweepGradient); | ||
| 71 | + mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP)); | ||
| 72 | + mPaint.setStyle(Style.STROKE); | ||
| 73 | + canvas.drawArc(rectBlackBg, 135, section * 275, false, mPaint); | ||
| 74 | + } | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + private void initPaint() { | ||
| 78 | + mPaint.setAntiAlias(true); | ||
| 79 | + mPaint.setStrokeWidth((float) 40.0); | ||
| 80 | + mPaint.setStyle(Style.STROKE); | ||
| 81 | + mPaint.setStrokeCap(Cap.ROUND); | ||
| 82 | + mPaint.setColor(Color.TRANSPARENT); | ||
| 83 | + mTextPaint.setAntiAlias(true); | ||
| 84 | + mTextPaint.setStrokeWidth((float) 3.0); | ||
| 85 | + mTextPaint.setTextAlign(Paint.Align.CENTER); | ||
| 86 | + mTextPaint.setTextSize(50); | ||
| 87 | + mTextPaint.setColor(Color.BLACK); | ||
| 88 | + | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + private int dipToPx(int dip) { | ||
| 92 | + float scale = getContext().getResources().getDisplayMetrics().density; | ||
| 93 | + return (int) (dip * scale + 0.5f * (dip >= 0 ? 1 : -1)); | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + public int getScore() { | ||
| 97 | + return score; | ||
| 98 | + } | ||
| 99 | + | ||
| 100 | + public String getCrrentLevel() { | ||
| 101 | + return crrentLevel; | ||
| 102 | + } | ||
| 103 | + | ||
| 104 | + public void setCrrentLevel(String crrentLevel) { | ||
| 105 | + this.crrentLevel = crrentLevel; | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + public float getMaxCount() { | ||
| 109 | + return maxCount; | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + public float getCurrentCount() { | ||
| 113 | + return currentCount; | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | + public void setScore(int score) { | ||
| 117 | + this.score = score; | ||
| 118 | + if (score == 100) { | ||
| 119 | + this.crrentLevel = ALARM_LEVEL[0]; | ||
| 120 | + } else if (score >= 70 && score < 100) { | ||
| 121 | + this.crrentLevel = ALARM_LEVEL[1]; | ||
| 122 | + } else if (score >= 30 && score < 70) { | ||
| 123 | + this.crrentLevel = ALARM_LEVEL[2]; | ||
| 124 | + } else { | ||
| 125 | + this.crrentLevel = ALARM_LEVEL[3]; | ||
| 126 | + } | ||
| 127 | + invalidate(); | ||
| 128 | + } | ||
| 129 | + public int getColor(int score) { | ||
| 130 | + this.score = score; | ||
| 131 | + if (score > 60 && score <= 100) { | ||
| 132 | + return SECTION_COLORS[2]; | ||
| 133 | + } else if (score >= 30 && score <= 60) { | ||
| 134 | + return SECTION_COLORS[1]; | ||
| 135 | + } else { | ||
| 136 | + return SECTION_COLORS[0]; | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + /*** | ||
| 142 | + * 设置最大的进度值 | ||
| 143 | + * | ||
| 144 | + * @param maxCount | ||
| 145 | + */ | ||
| 146 | + public void setMaxCount(float maxCount) { | ||
| 147 | + this.maxCount = maxCount; | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + /*** | ||
| 151 | + * 设置当前的进度值 | ||
| 152 | + * | ||
| 153 | + * @param currentCount | ||
| 154 | + */ | ||
| 155 | + public void setCurrentCount(float currentCount) { | ||
| 156 | + this.currentCount = currentCount > maxCount ? maxCount : currentCount; | ||
| 157 | + invalidate(); | ||
| 158 | + } | ||
| 159 | + | ||
| 160 | + @Override | ||
| 161 | + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { | ||
| 162 | + int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec); | ||
| 163 | + int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec); | ||
| 164 | + int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec); | ||
| 165 | + int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec); | ||
| 166 | + if (widthSpecMode == MeasureSpec.EXACTLY | ||
| 167 | + || widthSpecMode == MeasureSpec.AT_MOST) { | ||
| 168 | + mWidth = widthSpecSize; | ||
| 169 | + } else { | ||
| 170 | + mWidth = 0; | ||
| 171 | + } | ||
| 172 | + if (heightSpecMode == MeasureSpec.AT_MOST | ||
| 173 | + || heightSpecMode == MeasureSpec.UNSPECIFIED) { | ||
| 174 | + mHeight = dipToPx(15); | ||
| 175 | + } else { | ||
| 176 | + mHeight = heightSpecSize; | ||
| 177 | + } | ||
| 178 | + setMeasuredDimension(mWidth, mHeight); | ||
| 179 | + } | ||
| 180 | + | ||
| 181 | + } | 
| @@ -0,0 +1,6 @@ | @@ -0,0 +1,6 @@ | ||
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + <stroke android:color="#00000000" android:width="1dp"/> | ||
| 4 | + <solid android:color="@color/white" /> | ||
| 5 | + <corners android:radius="10dp"/> | ||
| 6 | +</shape> | ||
| 0 | \ No newline at end of file | 7 | \ No newline at end of file | 
| @@ -0,0 +1,6 @@ | @@ -0,0 +1,6 @@ | ||
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + <stroke android:color="#00000000" android:width="1dp"/> | ||
| 4 | + <solid android:color="#AACFFC" /> | ||
| 5 | + <corners android:topLeftRadius="10dp" android:topRightRadius="10dp"/> | ||
| 6 | +</shape> | ||
| 0 | \ No newline at end of file | 7 | \ No newline at end of file | 
app/src/main/res/layout/fragment_report.xml
| @@ -49,8 +49,25 @@ | @@ -49,8 +49,25 @@ | ||
| 49 | android:drawableRight="@drawable/screen" | 49 | android:drawableRight="@drawable/screen" | 
| 50 | /> | 50 | /> | 
| 51 | </LinearLayout> | 51 | </LinearLayout> | 
| 52 | +<LinearLayout | ||
| 53 | + android:layout_width="match_parent" | ||
| 54 | + android:layout_height="60dp"> | ||
| 55 | +<TextView | ||
| 56 | + android:layout_width="match_parent" | ||
| 57 | + android:layout_height="match_parent" | ||
| 58 | + android:text="日期控件" | ||
| 59 | + android:textColor="@color/white" | ||
| 60 | + android:gravity="center" | ||
| 61 | + android:background="@color/textRed" | ||
| 62 | + /> | ||
| 52 | 63 | ||
| 64 | +</LinearLayout> | ||
| 65 | +<android.support.v7.widget.RecyclerView | ||
| 66 | + android:id="@+id/recycle_report" | ||
| 67 | + android:layout_width="match_parent" | ||
| 68 | + android:layout_height="match_parent"> | ||
| 53 | 69 | ||
| 70 | +</android.support.v7.widget.RecyclerView> | ||
| 54 | </LinearLayout> | 71 | </LinearLayout> | 
| 55 | 72 | ||
| 56 | </FrameLayout> | 73 | </FrameLayout> | 
| @@ -0,0 +1,103 @@ | @@ -0,0 +1,103 @@ | ||
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:layout_width="match_parent" | ||
| 4 | + android:layout_height="match_parent"> | ||
| 5 | + | ||
| 6 | + <LinearLayout | ||
| 7 | + android:layout_width="match_parent" | ||
| 8 | + android:layout_height="250dp" | ||
| 9 | + android:layout_margin="20dp" | ||
| 10 | + android:background="@drawable/report_white" | ||
| 11 | + android:orientation="vertical"> | ||
| 12 | + | ||
| 13 | + <TextView | ||
| 14 | + android:layout_width="match_parent" | ||
| 15 | + android:layout_height="40dp" | ||
| 16 | + android:background="@drawable/rudiobtn_report_top" | ||
| 17 | + android:gravity="center_vertical" | ||
| 18 | + android:paddingLeft="20dp" | ||
| 19 | + android:text="语文作业报告" | ||
| 20 | + android:textColor="#20519f" | ||
| 21 | + android:textSize="@dimen/sp_16" /> | ||
| 22 | + | ||
| 23 | + <RelativeLayout | ||
| 24 | + android:layout_width="match_parent" | ||
| 25 | + android:layout_height="wrap_content" | ||
| 26 | + android:layout_weight="1" | ||
| 27 | + android:orientation="horizontal"> | ||
| 28 | + | ||
| 29 | + <LinearLayout | ||
| 30 | + android:layout_width="80dp" | ||
| 31 | + android:layout_height="match_parent" | ||
| 32 | + android:layout_marginTop="10dp" | ||
| 33 | + android:orientation="vertical"> | ||
| 34 | + | ||
| 35 | + <TextView | ||
| 36 | + android:layout_width="match_parent" | ||
| 37 | + android:layout_height="wrap_content" | ||
| 38 | + android:gravity="center" | ||
| 39 | + android:text="12" | ||
| 40 | + android:textColor="@color/textGreen" | ||
| 41 | + android:textSize="@dimen/txtsize_num" /> | ||
| 42 | + | ||
| 43 | + <TextView | ||
| 44 | + android:layout_width="match_parent" | ||
| 45 | + android:layout_height="wrap_content" | ||
| 46 | + android:gravity="center" | ||
| 47 | + android:text="正确" | ||
| 48 | + android:textColor="@color/textGreen" | ||
| 49 | + android:textSize="@dimen/sp_16" /> | ||
| 50 | + </LinearLayout> | ||
| 51 | + | ||
| 52 | + <LinearLayout | ||
| 53 | + android:layout_width="wrap_content" | ||
| 54 | + android:layout_height="match_parent" | ||
| 55 | + android:layout_weight="1" | ||
| 56 | + android:layout_centerInParent="true" | ||
| 57 | + android:gravity="center_horizontal" | ||
| 58 | + > | ||
| 59 | + <com.shunzhi.parent.views.ProgressView | ||
| 60 | + android:id="@+id/ring" | ||
| 61 | + android:layout_width="160dp" | ||
| 62 | + android:layout_height="match_parent" | ||
| 63 | + android:layout_marginTop="10dp" /> | ||
| 64 | + </LinearLayout> | ||
| 65 | + | ||
| 66 | + <LinearLayout | ||
| 67 | + android:layout_width="80dp" | ||
| 68 | + android:layout_height="match_parent" | ||
| 69 | + android:layout_marginTop="10dp" | ||
| 70 | + android:layout_alignParentRight="true" | ||
| 71 | + android:orientation="vertical"> | ||
| 72 | + | ||
| 73 | + <TextView | ||
| 74 | + android:layout_width="match_parent" | ||
| 75 | + android:layout_height="wrap_content" | ||
| 76 | + android:gravity="center" | ||
| 77 | + android:text="8" | ||
| 78 | + android:textColor="@color/textRed" | ||
| 79 | + android:textSize="@dimen/txtsize_num" /> | ||
| 80 | + | ||
| 81 | + <TextView | ||
| 82 | + android:layout_width="match_parent" | ||
| 83 | + android:layout_height="wrap_content" | ||
| 84 | + android:gravity="center" | ||
| 85 | + android:text="错误" | ||
| 86 | + android:textColor="@color/textRed" | ||
| 87 | + android:textSize="@dimen/sp_16" /> | ||
| 88 | + </LinearLayout> | ||
| 89 | + | ||
| 90 | + </RelativeLayout> | ||
| 91 | + | ||
| 92 | + <TextView | ||
| 93 | + android:layout_width="match_parent" | ||
| 94 | + android:layout_height="wrap_content" | ||
| 95 | + android:height="40dp" | ||
| 96 | + android:gravity="center_vertical" | ||
| 97 | + android:paddingLeft="20dp" | ||
| 98 | + android:text="3月4日语文作业" | ||
| 99 | + android:textColor="@color/text_color" | ||
| 100 | + android:textSize="@dimen/sp_14" /> | ||
| 101 | + | ||
| 102 | + </LinearLayout> | ||
| 103 | +</LinearLayout> | 
app/src/main/res/values/colors.xml
| @@ -18,4 +18,5 @@ | @@ -18,4 +18,5 @@ | ||
| 18 | <color name="zxlx">#1BE2E5</color> | 18 | <color name="zxlx">#1BE2E5</color> | 
| 19 | <color name="huodong_blue">#ACD1FB</color> | 19 | <color name="huodong_blue">#ACD1FB</color> | 
| 20 | <color name="text_color">#757575</color> | 20 | <color name="text_color">#757575</color> | 
| 21 | + <color name="textGreen">#5FB762</color> | ||
| 21 | </resources> | 22 | </resources> | 
app/src/main/res/values/dimens.xml
| @@ -14,6 +14,7 @@ | @@ -14,6 +14,7 @@ | ||
| 14 | 14 | ||
| 15 | <!-- txtsize --> | 15 | <!-- txtsize --> | 
| 16 | <dimen name="txtsize_display1">34sp</dimen> | 16 | <dimen name="txtsize_display1">34sp</dimen> | 
| 17 | + <dimen name="txtsize_num">36sp</dimen> | ||
| 17 | <dimen name="txtsize_headline">24sp</dimen> | 18 | <dimen name="txtsize_headline">24sp</dimen> | 
| 18 | <dimen name="txtsize_title">20sp</dimen> | 19 | <dimen name="txtsize_title">20sp</dimen> | 
| 19 | <dimen name="txtsize_subhead">16sp</dimen> | 20 | <dimen name="txtsize_subhead">16sp</dimen> |