На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Hsilgos
  
> Android: проблемы с Canvas , не могу понять принцип рисования
    Пробую писать под андроид, хотя бы простенькие Lines. Не могу понять, как соотносятся размеры иконок в ресурсах и точек на экране.
    Код такой:
    ExpandedWrap disabled
      public class GraphicsView extends View
          {
              public GraphicsView(Context context) { super(context); }
       
             @Override
              protected void onDraw(Canvas canvas)
              {      
                 Bitmap myBitmap;
                 for(int i = 0; i < gameCore.numOfRows; i++)
                 {
                      for(int j = 0; j < gameCore.numOfRows; j++)
                      {      
                          switch(gameCore.gameField[i][j])
                          {
                          case 1:                
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.blue);        
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);                  
                              break;
                          case 2:
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.brown);        
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);
                              break;
                          case 3:
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.cyan);        
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);
                              break;
                          case 4:
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.green);        
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);
                              break;
                          case 5:
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.orange);      
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);
                              break;
                          case 6:
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pink);        
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);
                              break;
                          case 7:
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.yellow);      
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);
                              break;
                          default:
                              myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.blank);        
                              canvas.drawBitmap(myBitmap, gameCore.picSize * i, gameCore.picSize * j, null);
                              break;
                          }            
                      }
                 }
              }
          }

    picSize, и, соответственно, размер иконок - 50 пикселей.
    В итоге выходит такой страх:
    user posted image
    Пример иконки:
    user posted image
    И второй вопрос - как мне уместить в окне приложения и canvas и элементы управления?
    Сейчас у меня так:
    ExpandedWrap disabled
      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          >
          <Button android:layout_width="106dp"
                  android:id="@+id/button1"
                  android:layout_height="wrap_content"
                  android:text="New game"
                  android:layout_alignParentBottom="true"
                  android:layout_centerHorizontal="true"
                  android:layout_marginBottom="24dp"
                  android:onClick="startClick"/>
      </RelativeLayout>

    ExpandedWrap disabled
      public void onCreate(Bundle savedInstanceState)
      {
              super.onCreate(savedInstanceState);
              //setContentView(R.layout.main);
              GraphicsView myview=new GraphicsView(this);
              setContentView(myview);        
      }

    И в итоге кнопку при запуске просто не видно.
    Сообщение отредактировано: D_Alex -
      уменьшила картинки до 30х30, причем pixSize остался 50 - теперь прорисовка почти нормальная. :huh: Как же работать с png?
        попробуй использовать постфикс px
        Цитата
        Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).
        p.s. пальцем в небо :rolleyes:
          SVK не, все-таки не совсем то =) вот с bmp ясно - так сколько точек, столько и пикселей. А тут есть еще разрешение.. :crazy:
            D_Alex, что не ясно с лейаутами?
            З.ы. модеры, поехали.
              Вуйко з полонини с лейаутами ясно, непонятно про соотношение размера пнг и итогового размера на экране
                D_Alex, почитай тут
                  Вуйко з полонини вот оно что! спасибо большое :thanks:
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0416 ]   [ 15 queries used ]   [ Generated: 25.04.24, 08:11 GMT ]