Как нарисовать треугольник, звезду, квадрат или сердце на холсте? -- android поле с участием draw поле с участием shapes пол Связанный проблема

How to draw a triangle, a star, a square or a heart on the canvas?


13
vote

проблема

русский

Я могу нарисовать круг и прямоугольник на холсте, используя
<Код> path.addCircle()

и

<Код> path.addRect() .

А теперь мне интересно, как нарисовать треугольник или звезду или квадрат или сердце?

Английский оригинал

I am able to draw a circle and a rectangle on canvas by using
path.addCircle()

and

path.addRect().

And now I am wondering how to draw a triangle or a star or a square or a heart?

</div
        

Список ответов

11
 
vote
vote
Лучший ответ
 

Вы должны выяснить математику за этими фигурами. Треугольник и звезда довольно легко рисовать. Вот как вы можете нарисовать сердце: http://www.mathematische-basteleien.de/heart .htm

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

Это то, что я делаю для достижения моделируемой 2D-страницы скручиваемого эффекта на Andriod: http://code.google.com/p/android-page-curl/

Надеюсь, это поможет!

 

You have to find out the math behind that figures. The triangle and the star are quite easy to draw. Here is how you can draw a heart: http://www.mathematische-basteleien.de/heart.htm

To draw special paths you should create them by adding points, ellipses etc. The canvas supports a clipping mask of a specified path, so you can set the clipping mask of a heart, push the paths to the matrix, draw the content of the heart, and then pop it again.

That's what I'm doing to achieve a simulated 2D page curl effect on andriod: http://code.google.com/p/android-page-curl/

Hope this helps!

</div
 
 
29
 
vote

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

Star Image

Основной инструмент использует пути.

Предполагая, что у вас установка:

 <код> Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE);  Path path = new Path();   

Тогда в вас Ondraw, вы можете использовать путь, как будто я делаю ниже. Он будет масштабироваться должным образом для любых размеров Canvas

 <код> @Override protected void onDraw(Canvas canvas) {      float mid = getWidth() / 2;     float min = Math.min(getWidth(), getHeight());     float fat = min / 17;     float half = min / 2;     float rad = half - fat;     mid = mid - half;      paint.setStrokeWidth(fat);     paint.setStyle(Paint.Style.STROKE);      canvas.drawCircle(mid + half, half, rad, paint);      path.reset();      paint.setStyle(Paint.Style.FILL);           // top left         path.moveTo(mid + half * 0.5f, half * 0.84f);         // top right         path.lineTo(mid + half * 1.5f, half * 0.84f);         // bottom left         path.lineTo(mid + half * 0.68f, half * 1.45f);         // top tip         path.lineTo(mid + half * 1.0f, half * 0.5f);         // bottom right         path.lineTo(mid + half * 1.32f, half * 1.45f);         // top left         path.lineTo(mid + half * 0.5f, half * 0.84f);          path.close();         canvas.drawPath(path, paint);      super.onDraw(canvas);  }   
 

For future direct answer seekers, I have drawn an almost symmetric star using canvas, as shown in the image:

Star Image

The main tool is using Paths.

Assuming you have setup:

Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE);  Path path = new Path(); 

Then in you onDraw you can use the path like I do below. It will scale properly to any sizes canvas

@Override protected void onDraw(Canvas canvas) {      float mid = getWidth() / 2;     float min = Math.min(getWidth(), getHeight());     float fat = min / 17;     float half = min / 2;     float rad = half - fat;     mid = mid - half;      paint.setStrokeWidth(fat);     paint.setStyle(Paint.Style.STROKE);      canvas.drawCircle(mid + half, half, rad, paint);      path.reset();      paint.setStyle(Paint.Style.FILL);           // top left         path.moveTo(mid + half * 0.5f, half * 0.84f);         // top right         path.lineTo(mid + half * 1.5f, half * 0.84f);         // bottom left         path.lineTo(mid + half * 0.68f, half * 1.45f);         // top tip         path.lineTo(mid + half * 1.0f, half * 0.5f);         // bottom right         path.lineTo(mid + half * 1.32f, half * 1.45f);         // top left         path.lineTo(mid + half * 0.5f, half * 0.84f);          path.close();         canvas.drawPath(path, paint);      super.onDraw(canvas);  } 
</div
 
 
13
 
vote

Для всех, которые нуждается в форме сердца:

 <код>     import android.content.Context;     import android.graphics.Canvas;     import android.graphics.Color;     import android.graphics.Paint;     import android.graphics.Paint.Style;     import android.graphics.Path;     import android.view.View;      public class Heart extends View {          private Path path;          private Paint paint;          public Heart(Context context) {             super(context);              path = new Path();             paint = new Paint(Paint.ANTI_ALIAS_FLAG);         }              @Override             protected void onDraw(Canvas canvas) {                 super.onDraw(canvas);                  // Fill the canvas with background color                 canvas.drawColor(Color.WHITE);                 paint.setShader(null);                  float width = getContext().getResources().getDimension(R.dimen.heart_width);                 float height = getContext().getResources().getDimension(R.dimen.heart_height);                  // Starting point                 path.moveTo(width / 2, height / 5);                   // Upper left path                 path.cubicTo(5 * width / 14, 0,                         0, height / 15,                         width / 28, 2 * height / 5);                  // Lower left path                 path.cubicTo(width / 14, 2 * height / 3,                         3 * width / 7, 5 * height / 6,                         width / 2, height);                  // Lower right path                 path.cubicTo(4 * width / 7, 5 * height / 6,                         13 * width / 14, 2 * height / 3,                         27 * width / 28, 2 * height / 5);                  // Upper right path                 path.cubicTo(width, height / 15,                         9 * width / 14, 0,                         width / 2, height / 5);                  paint.setColor(Color.RED);                 paint.setStyle(Style.FILL);                 canvas.drawPath(path, paint);              }     }   

Извините за все цифры, но они работали лучше всего :) Результат выглядит так:

Введите описание изображения здесь

 

For everybody that needs a heart shape:

    import android.content.Context;     import android.graphics.Canvas;     import android.graphics.Color;     import android.graphics.Paint;     import android.graphics.Paint.Style;     import android.graphics.Path;     import android.view.View;      public class Heart extends View {          private Path path;          private Paint paint;          public Heart(Context context) {             super(context);              path = new Path();             paint = new Paint(Paint.ANTI_ALIAS_FLAG);         }              @Override             protected void onDraw(Canvas canvas) {                 super.onDraw(canvas);                  // Fill the canvas with background color                 canvas.drawColor(Color.WHITE);                 paint.setShader(null);                  float width = getContext().getResources().getDimension(R.dimen.heart_width);                 float height = getContext().getResources().getDimension(R.dimen.heart_height);                  // Starting point                 path.moveTo(width / 2, height / 5);                   // Upper left path                 path.cubicTo(5 * width / 14, 0,                         0, height / 15,                         width / 28, 2 * height / 5);                  // Lower left path                 path.cubicTo(width / 14, 2 * height / 3,                         3 * width / 7, 5 * height / 6,                         width / 2, height);                  // Lower right path                 path.cubicTo(4 * width / 7, 5 * height / 6,                         13 * width / 14, 2 * height / 3,                         27 * width / 28, 2 * height / 5);                  // Upper right path                 path.cubicTo(width, height / 15,                         9 * width / 14, 0,                         width / 2, height / 5);                  paint.setColor(Color.RED);                 paint.setStyle(Style.FILL);                 canvas.drawPath(path, paint);              }     } 

Sorry for all the numbers but these worked best for me :) The result looks like this:

enter image description here

</div
 
 
11
 
vote

Этот метод вернет путь с количеством углов, приведенных внутри квадрата данной ширины. Добавить больше параметров, чтобы обрабатывать небольшой радиус и такие вещи.

 <код>     private Path createStarBySize(float width, int steps) {     float halfWidth = width / 2.0F;     float bigRadius = halfWidth;     float radius = halfWidth / 2.0F;     float degreesPerStep = (float) Math.toRadians(360.0F / (float) steps);     float halfDegreesPerStep = degreesPerStep / 2.0F;     Path ret = new Path();     ret.setFillType(FillType.EVEN_ODD);     float max = (float) (2.0F* Math.PI);     ret.moveTo(width, halfWidth);     for (double step = 0; step < max; step += degreesPerStep) {         ret.lineTo((float)(halfWidth + bigRadius * Math.cos(step)), (float)(halfWidth + bigRadius * Math.sin(step)));         ret.lineTo((float)(halfWidth + radius * Math.cos(step + halfDegreesPerStep)), (float)(halfWidth + radius * Math.sin(step + halfDegreesPerStep)));     }     ret.close();     return ret; }   
 

this method will return a path with the number of corners given inside a square of the given width. Add more parameters to handle small radius and such things.

    private Path createStarBySize(float width, int steps) {     float halfWidth = width / 2.0F;     float bigRadius = halfWidth;     float radius = halfWidth / 2.0F;     float degreesPerStep = (float) Math.toRadians(360.0F / (float) steps);     float halfDegreesPerStep = degreesPerStep / 2.0F;     Path ret = new Path();     ret.setFillType(FillType.EVEN_ODD);     float max = (float) (2.0F* Math.PI);     ret.moveTo(width, halfWidth);     for (double step = 0; step < max; step += degreesPerStep) {         ret.lineTo((float)(halfWidth + bigRadius * Math.cos(step)), (float)(halfWidth + bigRadius * Math.sin(step)));         ret.lineTo((float)(halfWidth + radius * Math.cos(step + halfDegreesPerStep)), (float)(halfWidth + radius * Math.sin(step + halfDegreesPerStep)));     }     ret.close();     return ret; } 
</div
 
 
 
 
2
 
vote

Если вам нужно нарисовать звезду внутри квадрата, вы можете использовать код ниже.

<Код> posX и <Код> posY - это координаты для верхнего левого угла квадрата, который охватывает наконечники звезды (квадрат на самом деле не нарисован).

<Код> size - это ширина и высота квадрата.

<Код> a - верхняя вершина звезды. Путь создан по часовой стрелке.

Это ни в коем случае не является идеальным решением, но оно получает работу очень быстро.

 <код>  public void drawStar(float posX, float posY, int size, Canvas canvas){              int hMargin = size/9;             int vMargin = size/4;              Point a = new Point((int) (posX + size/2), (int) posY);             Point b = new Point((int) (posX + size/2 + hMargin), (int) (posY + vMargin));             Point c = new Point((int) (posX + size), (int) (posY + vMargin));             Point d = new Point((int) (posX + size/2 + 2*hMargin), (int) (posY + size/2 + vMargin/2));             Point e = new Point((int) (posX + size/2 + 3*hMargin), (int) (posY + size));             Point f = new Point((int) (posX + size/2), (int) (posY + size - vMargin));             Point g = new Point((int) (posX + size/2 - 3*hMargin), (int) (posY + size));             Point h = new Point((int) (posX + size/2 - 2*hMargin), (int) (posY + size/2 + vMargin/2));             Point i = new Point((int) posX, (int) (posY + vMargin));             Point j = new Point((int) (posX + size/2 - hMargin), (int) (posY + vMargin));              Path path = new Path();             path.moveTo(a.x, a.y);             path.lineTo(b.x, b.y);             path.lineTo(c.x, c.y);             path.lineTo(d.x, d.y);             path.lineTo(e.x, e.y);             path.lineTo(f.x, f.y);             path.lineTo(f.x, f.y);             path.lineTo(g.x, g.y);             path.lineTo(h.x, h.y);             path.lineTo(i.x, i.y);             path.lineTo(j.x, j.y);             path.lineTo(a.x, a.y);              path.close();              canvas.drawPath(path, paint); }   
 

If you need to draw a star inside a square, you can use the code below.

posX and posY are the coordinates for the upper left corner of the square that encloses the tips of the star (the square is not actually drawn).

size is the width and height of the square.

a is the top tip of the star. The path is created clockwise.

This is by no means a perfect solution, but it gets the job done very quickly.

 public void drawStar(float posX, float posY, int size, Canvas canvas){              int hMargin = size/9;             int vMargin = size/4;              Point a = new Point((int) (posX + size/2), (int) posY);             Point b = new Point((int) (posX + size/2 + hMargin), (int) (posY + vMargin));             Point c = new Point((int) (posX + size), (int) (posY + vMargin));             Point d = new Point((int) (posX + size/2 + 2*hMargin), (int) (posY + size/2 + vMargin/2));             Point e = new Point((int) (posX + size/2 + 3*hMargin), (int) (posY + size));             Point f = new Point((int) (posX + size/2), (int) (posY + size - vMargin));             Point g = new Point((int) (posX + size/2 - 3*hMargin), (int) (posY + size));             Point h = new Point((int) (posX + size/2 - 2*hMargin), (int) (posY + size/2 + vMargin/2));             Point i = new Point((int) posX, (int) (posY + vMargin));             Point j = new Point((int) (posX + size/2 - hMargin), (int) (posY + vMargin));              Path path = new Path();             path.moveTo(a.x, a.y);             path.lineTo(b.x, b.y);             path.lineTo(c.x, c.y);             path.lineTo(d.x, d.y);             path.lineTo(e.x, e.y);             path.lineTo(f.x, f.y);             path.lineTo(f.x, f.y);             path.lineTo(g.x, g.y);             path.lineTo(h.x, h.y);             path.lineTo(i.x, i.y);             path.lineTo(j.x, j.y);             path.lineTo(a.x, a.y);              path.close();              canvas.drawPath(path, paint); } 
</div
 
 
1
 
vote

В дополнение к эллипсе и прямоугольнику вам понадобится эти два (как минимум):

Drawline (Float Startx, Float Starty, Float Stopx, Float Scapey, Краска краска)
Высоки (float [] pts, int offset, int count, краска краски)

Пример: Как нарисовать линию в Android

Документация на холсте: http://developer.android.com/reference /android/graphics/canvas.html

 

In addition to ellipse and rectangular you will need those two (as minimum):

drawLine(float startX, float startY, float stopX, float stopY, Paint paint)
drawLines(float[] pts, int offset, int count, Paint paint)

example: How to draw a line in android

Documentation on Canvas: http://developer.android.com/reference/android/graphics/Canvas.html

</div
 
 
 
 
0
 
vote

Это очень хорошо использовать экземпляр класса формы))

 <код>  @Override     public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);      HeartShape shape = new HeartShape();     ShapeDrawable shapeDrawable = new ShapeDrawable(shape);     shapeDrawable.setColorFilter(new LightingColorFilter(0, Color.BLUE));      LinearLayout linearLayout = new LinearLayout(this);     linearLayout.setLayoutParams(new LinearLayout.LayoutParams(350 * 3, 350 * 3));     linearLayout.setBackground(shapeDrawable);      setContentView(linearLayout);   }   

Создать класс формы, который был представляют хорошее сердце

 <код>  public class HeartShape extends Shape {    private final int INVALID_SIZE = -1;    private Path mPath = new Path();   private RectF mRectF = new RectF();    private float mOldWidth = INVALID_SIZE;   private float mOldHeight = INVALID_SIZE;    private float mScaleX, mScaleY;    public HeartShape() {    }    @Override   public void draw(Canvas canvas, Paint paint) {     canvas.save();     canvas.scale(mScaleX, mScaleY);      float width = mRectF.width();     float height = mRectF.height();      float halfWidth = width/2;     float halfHeight = height/2;      float stdDestX = 5 * width / 14;     float stdDestY = 2 * height / 3;      PointF point1 = new PointF(stdDestX, 0);     PointF point2 = new PointF(0, height / 15);     PointF point3 = new PointF(stdDestX / 5, stdDestY);     PointF point4 = new PointF(stdDestX, stdDestY);      // Starting point     mPath.moveTo(halfWidth, height / 5);      mPath.cubicTo(point1.x, point1.y, point2.x, point2.y, width / 28, 2 * height / 5);     mPath.cubicTo(point3.x, point3.y, point4.x, point4.y, halfWidth, height);      canvas.drawPath(mPath, paint);      canvas.scale(-mScaleX, mScaleY, halfWidth, halfHeight);     canvas.drawPath(mPath, paint);      canvas.restore();   }    @Override   protected void onResize(float width, float height) {     mOldWidth = mOldWidth == INVALID_SIZE ? width : Math.max(1, mOldWidth);     mOldHeight = mOldHeight == INVALID_SIZE ? height : Math.max(1, mOldHeight);      width = Math.max(1, width);     height = Math.max(1, height);      mScaleX = width / mOldWidth;     mScaleY = height / mOldHeight;      mOldWidth = width;     mOldHeight = height;       mRectF.set(0, 0, width, height);   }    @Override   public void getOutline(@NonNull Outline outline) {     // HeartShape not supported outlines   }    @Override   public HeartShape clone() throws CloneNotSupportedException {     HeartShape shape = (HeartShape) super.clone();     shape.mPath = new Path(mPath);     return shape;   }  }   

Введите описание изображения здесь

 

Its very good to use instance of Shape class ))

 @Override     public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);      HeartShape shape = new HeartShape();     ShapeDrawable shapeDrawable = new ShapeDrawable(shape);     shapeDrawable.setColorFilter(new LightingColorFilter(0, Color.BLUE));      LinearLayout linearLayout = new LinearLayout(this);     linearLayout.setLayoutParams(new LinearLayout.LayoutParams(350 * 3, 350 * 3));     linearLayout.setBackground(shapeDrawable);      setContentView(linearLayout);   } 

Create a shape class which was render nice Heart

 public class HeartShape extends Shape {    private final int INVALID_SIZE = -1;    private Path mPath = new Path();   private RectF mRectF = new RectF();    private float mOldWidth = INVALID_SIZE;   private float mOldHeight = INVALID_SIZE;    private float mScaleX, mScaleY;    public HeartShape() {    }    @Override   public void draw(Canvas canvas, Paint paint) {     canvas.save();     canvas.scale(mScaleX, mScaleY);      float width = mRectF.width();     float height = mRectF.height();      float halfWidth = width/2;     float halfHeight = height/2;      float stdDestX = 5 * width / 14;     float stdDestY = 2 * height / 3;      PointF point1 = new PointF(stdDestX, 0);     PointF point2 = new PointF(0, height / 15);     PointF point3 = new PointF(stdDestX / 5, stdDestY);     PointF point4 = new PointF(stdDestX, stdDestY);      // Starting point     mPath.moveTo(halfWidth, height / 5);      mPath.cubicTo(point1.x, point1.y, point2.x, point2.y, width / 28, 2 * height / 5);     mPath.cubicTo(point3.x, point3.y, point4.x, point4.y, halfWidth, height);      canvas.drawPath(mPath, paint);      canvas.scale(-mScaleX, mScaleY, halfWidth, halfHeight);     canvas.drawPath(mPath, paint);      canvas.restore();   }    @Override   protected void onResize(float width, float height) {     mOldWidth = mOldWidth == INVALID_SIZE ? width : Math.max(1, mOldWidth);     mOldHeight = mOldHeight == INVALID_SIZE ? height : Math.max(1, mOldHeight);      width = Math.max(1, width);     height = Math.max(1, height);      mScaleX = width / mOldWidth;     mScaleY = height / mOldHeight;      mOldWidth = width;     mOldHeight = height;       mRectF.set(0, 0, width, height);   }    @Override   public void getOutline(@NonNull Outline outline) {     // HeartShape not supported outlines   }    @Override   public HeartShape clone() throws CloneNotSupportedException {     HeartShape shape = (HeartShape) super.clone();     shape.mPath = new Path(mPath);     return shape;   }  } 

enter image description here

</div
 
 

Связанный проблема

0  Вставить арабский с помощью PDO не работает  ( Insert arabic using pdo is not working ) 
Я очень глубоко укорую в этом и посмотрите много вопросов, и это не работает Каждый раз, когда я пытаюсь вставить арабский, он показывает так (?????) <Сильн...

1  Пункт меню Текст не отображается в DOWELAPPBAR  ( Menu item text not showing in bottomappbar ) 
Я пытался добавить заголовок пункт меню вместе с значком меню в нижней панели приложений в Android-студии. Я пытался установить: <код> app:showAsAction="ifR...

3  Возможно ли совместное использование экрана в Cordova?  ( Is screen sharing possible in cordova ) 
Я использую Opentok для видеочата и совместного использования экрана. Это отлично работает для меня на браузере. Однако мое приложение также бежит в родом с и...

1  Eclipse IDE отключается часто  ( Eclipse ide shuts down frequently ) 
Я пытался использовать SDK SDK SDK 22.3.0-887826, чтобы узнать о Develeopment Android, однако IDE отключается часто. Это происходит много, но в основном при и...

0  Android Hint Letts XML  ( Android hint problems xml ) 
Добавил Android: hint = "Utilizador", но когда я бегу и когда я проверю приложение, падает на этикетки. и это должно быть в текстовом поле <код> <?xml ve...

1  Исключение на скрытое название приложения с использованием листики  ( Exception on hiding title of the application using listactivity ) 
У меня есть класс, расширяющий <код> ListActivity , и я пытаюсь скрыть заголовок по умолчанию (я думаю, что это называется ActionBar), используя код ниже. Он ...

2  Держите текущую страницу, представленную, пока на следующей странице не загружена  ( Keep current page rendered until the next page is loaded ) 
У меня есть простое приложение, которое основано на WebView.loadurl (« http://www.example.com "). Когда пользователь нажимает на URL, поведение по умолчани...

0  Как использовать матрицу для изменения размера растрового изображения в SurfaceView?  ( How do i use a matrix to resize a bitmap in surfaceview ) 
Я нашел этот бит кода на Подобный вопрос , но я не могу понять, как его использовать. <код> Resizing a Bitmap: public Bitmap getResizedBitmap(Bitmap bm, i...

0  Кэшинга не работала на работе при добавлении интернет-соединения перехвата (модернизация 2 - Android)  ( Caching didnt work work when adding internet connection interceptor retrofit 2 ) 
Я пытаюсь реализовать интернет-соединение перехватчика с кэшированием с помощью модернизации и OKHTTP. Кэширование работает нормально, не добавляя интернет-...

2  Изменение Imeoptions клавиатуры xamarin.forms.entry в пользовательском рендере не работает на Android  ( Changing keyboards imeoptions of xamarin forms entry in custom renderer not wor ) 
Что у меня есть: У меня есть пользовательский класс <код> MyEntry , полученный из <код> Xamarin.Forms.Entry и пользовательских классов рендеринга <код> M...

3  Как установить Gridlines в GridView в Android  ( How to set gridlines to a gridview in android ) 
Я использую GridView, чтобы показать сводный отчет о 3 столбцах в моем приложении. Кажется, все работает нормально, за исключением пропущенных скремок GridVie...

779  Как определить, когда фрагмент становится видимым в ViewPager  ( How to determine when fragment becomes visible in viewpager ) 
Проблема: фрагмент <код> onResume() в <Код> ViewPager уволен до того, как фрагмент становится на самом деле видимым. Например, у меня есть 2 фрагмента с <...

7  Используйте простой класс C ++ в Android NDK  ( Use a simple c class in android ndk ) 
Я пытаюсь узнать основные основы Android NDK, но я застрял, когда я должен использовать его с классом C ++. Я понимаю, как использовать его с помощью просто...

0  ActionBassherlock, Holoeverywhere и Themes  ( Actionbassherlock holoeverywhere and themes ) 
Я пытаюсь осуществить выбор двух тем, темных и светлых. Темный работает нормально, но когда я выбираю световую тему, она отображается не правильно (батончик...

6  Android Soundpool HeapSize Переполнение  ( Android soundpool heapsize overflow ) 
Я получаю эту ошибку сотни раз, когда я бегу в отладку, это, похоже, не влияет на программу, но как мне избавиться от этого? Я знаю, что его можно проследит...

Связанный проблема

0  Вставить арабский с помощью PDO не работает 
1  Пункт меню Текст не отображается в DOWELAPPBAR 
3  Возможно ли совместное использование экрана в Cordova? 
1  Eclipse IDE отключается часто 
0  Android Hint Letts XML 
1  Исключение на скрытое название приложения с использованием листики 
2  Держите текущую страницу, представленную, пока на следующей странице не загружена 
0  Как использовать матрицу для изменения размера растрового изображения в SurfaceView? 
0  Кэшинга не работала на работе при добавлении интернет-соединения перехвата (модернизация 2 - Android) 
2  Изменение Imeoptions клавиатуры xamarin.forms.entry в пользовательском рендере не работает на Android 
3  Как установить Gridlines в GridView в Android 
779  Как определить, когда фрагмент становится видимым в ViewPager 
7  Используйте простой класс C ++ в Android NDK 
0  ActionBassherlock, Holoeverywhere и Themes 
6  Android Soundpool HeapSize Переполнение 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.