package pt.rupeal.invoicexpress.layouts; import pt.rupeal.invoicexpress.R; import pt.rupeal.invoicexpress.utils.ScreenLayoutUtil; import pt.rupeal.invoicexpress.utils.StringUtil; import android.app.Activity; import android.content.Context; import android.graphics.Paint; import android.view.View; import android.view.ViewGroup; import android.widget.RelativeLayout; import android.widget.TextView; public class LinkTwoLabelsLayout { private RelativeLayout layout; public LinkTwoLabelsLayout(Context context, ViewGroup parent) { layout = (RelativeLayout) ((Activity)context).getLayoutInflater().inflate(R.layout.link_two_labels, parent, false); } public RelativeLayout getLinkView(){ return layout; } public void setLabel(Context context, String text, int margin){ TextView label = ((TextView) layout.findViewById(R.id.link_label)); margin += ((ViewGroup.MarginLayoutParams) label.getLayoutParams()).leftMargin; margin += ((ViewGroup.MarginLayoutParams) label.getLayoutParams()).rightMargin; View verticalLine = layout.findViewById(R.id.link_vertical_line); margin += ((ViewGroup.MarginLayoutParams) verticalLine.getLayoutParams()).rightMargin; TextView value = ((TextView) layout.findViewById(R.id.link_value)); Paint paint = new Paint(); paint.setTextSize(value.getTextSize()); margin += paint.measureText(value.getText().toString()); margin += ((ViewGroup.MarginLayoutParams) value.getLayoutParams()).leftMargin; margin += ((ViewGroup.MarginLayoutParams) value.getLayoutParams()).rightMargin; margin += ScreenLayoutUtil.convertDpToPixels(context, 20); text = StringUtil.resizeString((Activity) context, text, label.getTextSize(), margin); label.setText(text); } public void setValue(String text){ ((TextView) layout.findViewById(R.id.link_value)).setText(text); } public int getMarginRight(Context context) { View verticalLine = layout.findViewById(R.id.link_vertical_line); int margin = ((ViewGroup.MarginLayoutParams) verticalLine.getLayoutParams()).rightMargin; margin += 2 * ScreenLayoutUtil.convertDpToPixels(context, 18); return margin; } }