Reputation: 6043
How could I implement a button background for ImageButton or Button which contains 2 textview each using different font sizes ? I can't use static images as background and I need to achieve this either using XML or programmatically.
This is a numeric keypad and it carries a numeric value and a set of alphabets each of which uses different font sizes and needs to be set as button text.
Here are some of the suggestions that pop-up on my brain but this seems to have limitations since I want to reuse the UI component and avoid code repetition.
Create a layout XML containing 2 textfields and set that as background on the button. But how can I get a reference of these textview fields to set the value on them in the MyActivity.java?
Use a layeredlist? Still same problem reference of textviews
Or create a custom view and inflate layout mentioned in step 1. This solution resolves my problem.
Does any other solution exist for this UI requirement?
Upvotes: 4
Views: 5713
Reputation: 903
Hopefully this will help. This off course is not the only solution but it is a pretty simple one. Add the xml part in your xml instead of the button.
XML
<LinearLayout
android:id="@+id/button_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="5"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:text="ABC"/>
</LinearLayout>
Code
LinearLayout button= (LinearLayout)findViewById(R.id.button_layout);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO DO whatever you want to do here
}
});
Upvotes: 9
Reputation: 10076
For your button you can use code like this
don't forget put font in your Assets folder
Button btnA=(Button) findViewById(R.id.button1);
Typeface typeface = Typeface.createFromAsset(getAssets(), "yourFont.ttf");
btnA.setText("my custom font");
btnA.setTypeface(typeface);
btnA.setTextSize(20);//as per your size
and for more reference see this
do as your second button if this helps let me know thanks...
Upvotes: 1