Dynamically Adding A Textview
In a layout file I have the following : android:layout_width='100dp' android:layout_height='wrap_content' android:layout_marginRight='10dp' android:text='SYN' an
Solution 1:
This is an interesting part of Android layouts. The XML properties that are prefixed with layout_ are actually for the containing view manager (like LinearLayout or RelativeLayout). So you need to add something like this:
//convert from pixels (accepted by LayoutParams) to dpint px = convertDpToPixel(100, this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(px, LinearLayout.LayoutParams.WRAP_CONTENT);
//convert from pixels (taken by LayoutParams.rightMargin) to dp
px = convertDpToPixel(10, this);
params.rightMargin = px;
idText.setLayoutParams(params);
And the convertDpToPixel (shamelessly adapted (change to return int instead of float) from Converting pixels to dp ):
/**
* This method converts dp unit to equivalent device specific value in pixels.
*
* @param dp A value in dp(Device independent pixels) unit. Which we need to convert into pixels
* @param context Context to get resources and device specific display metrics
* @return An integer value to represent Pixels equivalent to dp according to device
*/publicstaticintconvertDpToPixel(float dp, Context context) {
Resourcesresources= context.getResources();
DisplayMetricsmetrics= resources.getDisplayMetrics();
intpx= (int) (dp * (metrics.densityDpi / 160f));
return px;
}
EDIT: changed the assignment to rightMargin from 10 (# of pixels) to the variable px (containing the number of pixels in 10dp) whoopsie.
Post a Comment for "Dynamically Adding A Textview"