extends FrameLayout : Layout « UI « Android






extends FrameLayout

    

package app.test;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

class TextImageButton extends FrameLayout {
  private ImageView imageView;
  private TextView textView;

  public TextImageButton(Context context) {
    this(context, null);
  }

  public TextImageButton(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
  }

  public TextImageButton(Context context, AttributeSet attrs, int defaultStyle) {
    super(context, attrs, defaultStyle);
    imageView = new ImageView(context, attrs, defaultStyle);
    textView = new TextView(context, attrs, defaultStyle);
    FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    this.addView(imageView, params);
    this.addView(textView, params);
    setClickable(true);
    setFocusable(true);
    setBackgroundResource(android.R.drawable.btn_default);
    if (imageView.getDrawable() != null) {
      textView.setVisibility(View.GONE);
      imageView.setVisibility(View.VISIBLE);
    } else {
      textView.setVisibility(View.VISIBLE);
      imageView.setVisibility(View.GONE);
    }
  }

  public void setText(CharSequence text) {
    textView.setVisibility(View.VISIBLE);
    imageView.setVisibility(View.GONE);
    textView.setText(text);
  }

  public void setImageResource(int resId) {
    textView.setVisibility(View.GONE);
    imageView.setVisibility(View.VISIBLE);
    imageView.setImageResource(resId);
  }

  public void setImageDrawable(Drawable drawable) {
    textView.setVisibility(View.GONE);
    imageView.setVisibility(View.VISIBLE);
    imageView.setImageDrawable(drawable);
  }
}

public class Test extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }
}

//main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
  <app.test.TextImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#000"
    android:text="Click Me!"
  />
  <app.test.TextImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/icon"
  />
</LinearLayout>

   
    
    
    
  








Related examples in the same category

1.Load Layout from xml layout file
2.android:layout_width and android:layout_height
3.Provide layout for different screen size
4.Config your own layout through xml
5.Table layout inside a Linear layout
6.Set layout alignment base line
7.Using more than one layout xml
8.Using LayoutInflater
9.res\layout\main.xml
10.Using static string in layout xml file from strings.xml
11.Layout Orientation
12.Set Layout Parameters in your code
13.Layout widget with code only
14.Using two layout xml file for one Activity
15.Create the user interface by inflating a layout resource.
16.Layout input form
17.Layout Animation
18.extends ViewGroup to do layout
19.A layout that arranges its children in a grid.
20.Use the animateLayoutChanges tag in XML to automate transition animations as items are removed from or added to a container.
21.Use LayoutTransition to automate transition animations as items are hidden or shown in a container.
22.Layout gravity bottom
23.Layout gravity center vertical
24.Layout align Baseline, align Right
25.Layout grid fade
26.Layout bottom to top slide
27.Layout random fade
28.Layout grid inverse fade
29.Layout wave scale
30.Layout animation row left slide
31.Demonstrates a simple linear layout. The height of the layout is the sum of its children.
32.Demonstrates a simple linear layout. The layout fills the screen, with the children stacked from the top.
33.A simple linear layout fills the screen, with the children stacked from the top. The middle child gets allocated any extra space.
34.Demonstrates a horizontal linear layout with equally sized columns
35.Demonstrates a nesting layouts to make a form
36.Demonstrates a horizontal linear layout with equally sized columns. Some columns force their height to match the parent.
37.A simple layout which demonstrates stretching a view to fill the space between two other views.
38.Demonstrates using a relative layout to create a form
39.Demonstrates wrapping a layout in a ScrollView.
40.This example shows how to use cell spanning in a table layout.
41.Tabs that uses labels TabSpec#setIndicator(CharSequence) for indicators and views by id from a layout file TabSpec#setContent(int)
42.This sample application shows how to use layout animation and various transformations on views.
43.Create Linear Layout
44.Create LayoutParam
45.Inflate Layout
46.Layout Utils
47.Set text Size
48.Set right margin
49.Baseline nested
50.Set baselineAlignedChildIndex
51.Align along with Parent
52.Using LayoutParams