Все, что вам нужно сделать, это создать текстовое представление, чтобы заполнить родительский элемент, как
LayoutParams layoutParamsText= new LayoutParams(LayoutParams.FILL__PARENT,
LayoutParams.FILL_PARENT);
Когда вы устанавливаете гравитацию для текстового представления, это означает, что вы сообщаете текстовому представлению, где расположить его дочерние элементы. Но так как ваше текстовое представление имеет только размер вашего текста, гравитация не будет показывать никакой разницы. Так что просто сделайте просмотр текста, чтобы заполнить родительский.
Но я думаю, что RelativeLayout гораздо более подходит для этого, чем FrameLayout. Используя RelativeLayout это выглядит так
RelativeLayout rLayout = new RelativeLayout(this);
LayoutParams rlParams = new LayoutParams(LayoutParams.FILL_PARENT
,LayoutParams.FILL_PARENT);
rLayout.setLayoutParams(rlParams);
ImageView image= new ImageView(this);
image.setImageResource(R.drawable.icon);
image.setLayoutParams(rlParams);
RelativeLayout.LayoutParams tParams = new RelativeLayout.LayoutParams
(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
tParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
tParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
TextView text=new TextView(this);
text.setText("GOLDEN Gate");
text.setTextColor(Color.WHITE);
text.setTypeface(Typeface.DEFAULT_BOLD);
text.setLayoutParams(tParams);
rLayout.addView(image);
rLayout.addView(text);
setContentView(rLayout);