我想顯示一行數字,每行都打印在不同圓的中心。但是,該組的大小由用戶輸入確定。我所取得的成績是:Android:TextView中圓的半徑始終由TextView寬度和高度固定
RelativeLayout myLayout = (RelativeLayout)findViewById(R.id.layout1);
// Creating a new TextView
TextView[] tv = new TextView[size+1];
TextView temptv;
for (i = 1; i <= size; i++) {
temptv = new TextView(MainActivity.this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
if (i > 1) {
lp.addRule(RelativeLayout.BELOW, R.id.textView5);
lp.addRule(RelativeLayout.RIGHT_OF, tv[i-1].getId());
}
else {
lp.addRule(RelativeLayout.BELOW, R.id.textView5);
lp.addRule(RelativeLayout.ALIGN_LEFT, R.id.textView5);
}
// width of Text
temptv.setWidth(60);
temptv.setHeight(60);
// size of Text
temptv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
temptv.setGravity(Gravity.CENTER|Gravity.CENTER_VERTICAL);
temptv.setLayoutParams(lp);
myLayout.addView(temptv, lp);
answer = "<font color='#000000'>" + mynum[i] + "</font>";
// Update the label with our dynamic answer
temptv.setText(Html.fromHtml(answer));
temptv.setBackgroundResource(R.drawable.circle1);
tv[i] = temptv;
tv[i].setId(i);
}
它工作正常,但有一個問題。圓的半徑始終是TextView寬度或高度的一半。因此,在上述情況下,半徑始終是30,就像這張照片:
如果TextView的寬度和高度是不同的(例如,使用temptv.setWidth(75);
和temptv.setHeight(50);
),然後我得到的橢圓形,像這樣的畫面:pic2 http://i841.photobucket.com/albums/zz337/lilpengi/number2_zps767ec27f.png在我的circle1.xml形狀設置
不論:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="25dip"/>
<stroke android:color="#c00000" android:width="5dip"/>
<solid android:color="#ffffff"/>
</shape>
無論我設定在半徑,10,25,50,其結果是一樣的。我的代碼出了什麼問題?
你能張貼你現在得到的PIC ? – adriannieto
@cRaZyByTe增加了兩張照片,希望他們幫助。 – LaBird
如果你希望它們相同,爲什麼要設置寬度和高度不同? – ashishduh