Я добавляю текстовое изображение программно и хочу помещать фон на него, но я не могу заставить фон центрироваться. (Обновлено)Android - центр всего текста TextView, включая фон
FrameLayout mTableView1 = new FrameLayout(this);
FrameLayout mTableView2 = new FrameLayout(this);
FrameLayout mTableView3 = new FrameLayout(this);
int bgTop = getResources().getIdentifier("tableb1" , "drawable", this.getPackageName());
int bgMid = getResources().getIdentifier("tableb2" , "drawable", this.getPackageName());
int bgBot = getResources().getIdentifier("tableb3" , "drawable", this.getPackageName());
setTextStyle(tv1, "Dashboard", Gravity.CENTER, mLayoutView, 40, getResources().getColor(R.color.white), getResources().getColor(R.color.transparent), 0, 5);
setTextStyle(tv2, "Happening Now:", Gravity.LEFT, mLayoutView, 15, getResources().getColor(R.color.white), getResources().getColor(R.color.transparent), 0, 5);
setTableStyle(tv3, "Mark Novak Scheduled", Gravity.CENTER, mTableView1, 20, getResources().getColor(R.color.black), getResources().getColor(R.color.transparent), 0, 0, bgTop);
setTableStyle(tv4, "Attendance up 3%", Gravity.CENTER, mTableView2, 20, getResources().getColor(R.color.black), getResources().getColor(R.color.transparent), 0, 0, bgMid);
setTableStyle(tv5, "Location of next event", Gravity.CENTER, mTableView3, 20, getResources().getColor(R.color.black), getResources().getColor(R.color.transparent), 0, 0, bgBot);
mLayoutView.addView(mTableView1);
mLayoutView.addView(mTableView2);
mLayoutView.addView(mTableView3);
}
private void setTextStyle(TextView tv, String s, int g, LinearLayout L, int fsize, int textColor, int backgroundColor, int lpad, int tpad){
tv.setText(s);
tv.setGravity(g);
tv.setTextColor(textColor);
tv.setTextSize(fsize);
tv.setPadding(lpad, tpad, lpad, 0);
L.addView(tv);
}
private void setTableStyle(TextView tv, String s, int g, FrameLayout L, int fsize, int textColor, int backgroundColor, int lpad, int tpad, int bg){
tv.setText(s);
tv.setGravity(g);
tv.setTextColor(textColor);
tv.setTextSize(fsize);
tv.setPadding(lpad, 0, 0, 0);
tv.setBackgroundResource(bg);
tv.setWidth(200);
L.addView(tv);
}
Что я получаю, что текст нецентральные 200 пикселей, но в целом TextView нет. Фоновое изображение простирается от одного конца до другого. Есть ли способ обойти это? Я попытался установить ширину. У меня было немного работать, но потом что-то пошло не так, и оно снова растянулось.
Любые предложения?
Вы также можете отправить код для функции setTextStyle? –
@vipulmittal Сделано. Это было то же самое, что и другая функция, только с дополнительной переменной для установки фона. На самом деле, я должен просто сделать это одной функцией и передать ей нуль, я просто не обошел ее. –
проверьте мои сообщения и дайте мне знать, если это поможет –