领悟旧事

Learned Helplessness
分类新闻>>技术文章>>
XE7中,移动开发(android/iOs)画一个透明圆角方框
来源:http://www.xx0594.com/
时间:2014-12-23
作者:  浏览人数:800
画一个透明圆角方框,并输出文字。
    控件:Image1。
    方法:DrawBitmap、Canvas->Fill->Color、Canvas->FillRect、FillText
代码如下:

void __fastcall TForm3D1::ShowStr(int X,int Y,UnicodeString sStr)
{
 int i,m; UnicodeString s;
 Image1->Bitmap->Canvas->BeginScene();
 Image1->Bitmap->Canvas->DrawBitmap(bkMap,TRectF(0,0,19*6,33),
  TRectF(X,Y,X+6*19,Y+33),20);//恢复背景,见上面的定义。
 Image1->Bitmap->Canvas->Fill->Color =(TAlphaColor)claBlue;//画一个蓝色透明圆角方框。
 Image1->Bitmap->Canvas->FillRect(TRectF(X,Y,X+5*19,Y+33),10, 10, AllCorners,0.5);
 for(i=0;i<sStr.Length();i++)
 {//要特别注意:在andorid中SubString索引是从0开始,但在win32中,要从1开始,所以如果在
  s = sStr.SubString(i,1);//win32下,该行要改为 sStr.SubString(i+1,1),折腾死了!
  if(s == L":") ShowNum(X + i * 19,Y+5,10);//显示:
  else ShowNum(X + i*19,Y+5,StrToInt(s));//显示数字,高度增加5个单位。
 }
 Image1->Bitmap->Canvas->EndScene();
}
//---------------------------------------------------------------------------

7、输出文字
void __fastcall TForm3D1::ShowSum(int X,int Y,int iNum)
{
 TRectF showRect;
 Image1->Bitmap->Canvas->BeginScene();
 showRect.init(X +  10,Y, X + 22, Y + 16);
 //写一个数字。
 Image1->Bitmap->Canvas->FillText(showRect,IntToStr(iNum), false, 100,
   TFillTextFlags() << TFillTextFlag::RightToLeft, TTextAlign::Center,
   TTextAlign::Center);
 Image1->Bitmap->Canvas->EndScene();
}
//---------------------------------------------------------------------------

关闭窗口
 访问量:508171
任何第三方若要引用、转摘本站信息,均需征得本站书面同意,否则视为侵权。本站信息为个人观点,若因引用本站信息而产生的任何情况,均与本站无关。Email:linmutou@163.com
闽ICP备14017840号-2