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

Это фрагмент, с которым я пробовал. Пожалуйста, дайте мне знать и ваши идеи.

@Override
        protected void onDraw(Canvas canvas) {
        ..........
            ..........
            sampleImage.draw(canvas,getWidth(),getHeight()); // This moves the image to right end of the view.
            ..........
            ..........

Любая помощь приветствуется.

Спасибо.

1
Nandagopal T 14 Апр 2011 в 11:54

1 ответ

sampleImage.draw(
      canvas,
      getWidth()/2 - imageWidth/2,
      getHeight()/2 - imageHeight/2
); 

; )

1
John Mee 28 Сен 2011 в 03:15
Я также думаю, что вы должны перегрузить OnSizeChanged вашего представления, а затем сохранить ширину и высоту представления.
 – 
Lukas
14 Апр 2011 в 14:05
Привет, Лукас, спасибо за ваш ответ, я пробовал следующим образом, но все же не нашел правильного решения. movie.draw(canvas,getWidth()/2 - BitmapFactory.decodeResource(getResources(), R.drawable.loader).getWidth()/2,getHeight()/2 - BitmapFactory.decodeResource(getResources(), R.drawable .loader).getHeight()/2);
 – 
Nandagopal T
14 Апр 2011 в 14:22
Тем не менее, это идет где-то в правую сторону. не совсем в центре моего зрения. Пожалуйста, помогите, если у вас есть идеи. Спасибо...
 – 
Nandagopal T
14 Апр 2011 в 14:24
Попробуйте получить размер из фактического растрового изображения, которое вы будете рисовать, а не из ресурсов (декодируйте его один раз). Это будет работать намного быстрее. Что такое «кино»?
 – 
Lukas
14 Апр 2011 в 14:52
Спасибо, Лукас, я попробую и сообщу о статусе.
 – 
Nandagopal T
14 Апр 2011 в 17:13