2013-09-17 2 views
2

Я пытаюсь выполнить пользовательские рисунки на TImage, используя свойство Bitmap.Canvas. В Windows следующий код работает правильно, чтобы очистить весь Bitmap с синим заливкой:XE5 Android Bitmap.canvas

Image1.Bitmap := TBitmap.Create; 
with Image1.Bitmap do 
begin 
    width := Round(Image1.Width); 
    height := Round(Image1.Height); 
    with canvas do 
    begin 
    BeginScene; 
      Clear(TAlphaColorRec.Blue); 
    EndScene; 
    end; 
    end; 

На Android растровое изображение по-прежнему заполнены с синим, но вскрикнула внутри TImage. Как это сделать на устройстве Android?

ответ

1

Для Android устройства я слышал от специалистов Embarcadero, что вы должны сделать на заказ, созданный TBitmap, а затем присвоить его холст рисованной компоненты.

Существует хорошее видео на YouTube, которые показывают, как рисовать пиксели в Paintbox:

Video

0

создать растровый

Bitmap newBitmap = Bitmap.createBitmap(width, heigth, Config.ARGB_8888); 

, то вы должны создать холст и установить его в растровом изображении

Canvas cc = new Canvas(newBitmap); 

затем вы делаете новую краску и установите цвет хотел

Paint red = new Paint(); 
red.setColor(android.graphics.Color.RED); 
red.setStyle(Paint.Style.FILL); 

, тогда вы установили краску и растровое изображение на холст

cc.drawBitmap(newBitmap, 0, 0, red); 
+2

Delphi ?????????? – Christo

0

первым, является Изображение1 компонент времени Дизайн так, нет необходимости создавать растровое для него, вы просто можете изменить размер, если вы хотите, я не думаю, что это была проблема

Этот код работал со мной совершенным по андроиду

//////////////////////////////////////////// ///////////////

image1.bitmap.SetSize(512,512); 
if image1.bitmap.Canvas.BeginScene() then 
try 
    image1.bitmap.Canvas.Clear(TAlphaColorRec.Blue); 
finally 
    image1.bitmap.Canvas.EndScene; 
end; 

//////////////////////////// ///////////////////////////////

+0

Нет, это не компонент времени разработки. Вот почему высота и ширина заданы равными Image1.height и Image1.width, поэтому родительский TImage растрового изображения. – Christo

0

Создание растрового изображения, как это:

Image1.Bitmap:=TBitmap.Create(Round(Image1.Width), Round(Image1.Height)); 

вместо этого:

Image1.Bitmap := TBitmap.Create; 
+0

Я видел и редактировал его, но это не главное! Помогает ли это? – Remi