當前位置:首頁 » 安卓系統 » android畫一個圓

android畫一個圓

發布時間: 2022-06-20 14:04:22

❶ 關於android開發中在canvas畫圓的問題

我覺得你可以設置一個全局變數保存你當前點擊位置的坐標,然後在點擊事件發生的時候對該全集變數賦值然後invalid()通知系統更新畫面,在ondraw()中加入一行代碼用於畫圓,把全局變數中保存的點擊點坐標處畫一個,這樣簡單的的寫會有問題,比如在從未發生點擊的時候這個圓要怎麼處理等等

❷ android 怎麼在屏幕中間畫一個圓

主要運用SurfaceView來實現在屏幕上畫一個圓,你可以通過按方向鍵和觸摸屏幕來改變圓的位置 代碼: Activity package com.view; import android.app.Activity; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隱藏狀態欄 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // 把Activity的標題去掉 requestWindowFeature(Window.FEATURE_NO_TITLE); // 設置布局 this.setContentView(new MySurfaceView(this)); } } SurfaceView package com.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.SurfaceHolder; import android.view.SurfaceHolder.Callback; import android.view.SurfaceView; public class MySurfaceView extends SurfaceView implements Runnable, Callback { private SurfaceHolder mHolder; // 用於控制SurfaceView private Thread t; // 聲明一條線程 private boolean flag; // 線程運行的標識,用於控制線程 private Canvas mCanvas; // 聲明一張畫布 private Paint p; // 聲明一支畫筆 private int x = 50, y = 50, r = 10; // 圓的坐標和半徑 public MySurfaceView(Context context) { super(context); mHolder = getHolder(); // 獲得SurfaceHolder對象 mHolder.addCallback(this); // 為SurfaceView添加狀態監聽 p = new Paint(); // 創建一個畫筆對象 p.setColor(Color.WHITE); // 設置畫筆的顏色為白色 setFocusable(true); // 設置焦點 } /** * 自定義一個方法,在畫布上畫一個圓 */ public void Draw() { mCanvas = mHolder.lockCanvas(); // 獲得畫布對象,開始對畫布畫畫 mCanvas.drawRGB(0, 0, 0); // 把畫布填充為黑色 mCanvas.drawCircle(x, y, r, p); // 畫一個圓 mHolder.unlockCanvasAndPost(mCanvas); // 完成畫畫,把畫布顯示在屏幕上 } /** * 當SurfaceView創建的時候,調用此函數 */ @Override public void surfaceCreated(SurfaceHolder holder) { t = new Thread(this); // 創建一個線程對象 flag = true; // 把線程運行的標識設置成true t.start(); // 啟動線程 } /** * 當SurfaceView的視圖發生改變的時候,調用此函數 */ @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } /** * 當SurfaceView銷毀的時候,調用此函數 */ @Override public void surfaceDestroyed(SurfaceHolder holder) { flag = false; // 把線程運行的標識設置成false } /** * 當屏幕被觸摸時調用 */ @Override public boolean onTouchEvent(MotionEvent event) { x = (int) event.getX(); // 獲得屏幕被觸摸時對應的X軸坐標 y = (int) event.getY(); // 獲得屏幕被觸摸時對應的Y軸坐標 return true; } /** * 當用戶按鍵時調用 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_DPAD_UP){ //當用戶點擊↑鍵時 y--; //設置Y軸坐標減1 } return super.onKeyDown(keyCode, event); } @Override public void run() { while (flag) { Draw(); // 調用自定義畫畫方法 try { Thread.sleep(50); // 讓線程休息50毫秒 } catch (InterruptedException e) { e.printStackTrace(); } } } } MySurfaceView首先繼承SurfaceView,然後實現Runnable和Callback介面 重寫了Runnable的run方法和Callback的surfaceCreated(SurfaceHolder holder),surfaceChanged(SurfaceHolder holder, int format, int width,int height),surfaceDestroyed(SurfaceHolder holder)方法, 還實現了onTouchEvent(MotionEvent event),onKeyDown(int keyCode, KeyEvent event)方法來,詳細的在代碼里已注釋。

❸ Android 編程:畫布上寫文字和畫一個圓,圓的文字

我也好奇,如果是畫的話倒是可以實現。不過這種方法不好,先google下我。Android 編程:畫布上寫文字和畫一個圓,圓的文字

❹ Android開發,怎樣做一個畫圓圈的動畫效果

畫圓應該很簡單,自動循環的話,你就每隔一段時間刷新一下view

❺ android 里用shape畫圓,怎麼填充顏色

android 用shape畫圓,使用<solid android:color="#f00" />(#f00表示填充的顏色),該屬性來填充顏色,在Android studio按照如下步驟創建圓點並添加顏色屬性。

1、在使用Android studio創建的Android項目中,在drawable中創建一個空白文件,如下圖:

❻ android 怎麼畫一個圓弧的正方形

先來介紹一下畫幾何圖形要用到的,畫布(Canvas)、畫筆(Paint)。 1. 畫一個圓使用的是drawCircle:canvas.drawCircle(cx, cy, radius, paint);x、y代表坐標、radius是半徑、paint是畫筆,就是畫圖的顏色; 2. 在畫圖的時候還要有注意,你所畫的矩。可以看看安卓巴士的教程:http://www.apkbus.com/thread-465690-1-1.html

❼ android如何在屏幕點擊位置畫一個小圓

主要運用SurfaceView來實現在屏幕上畫一個圓,你可以通過按方向鍵和觸摸屏幕來改變圓的位置

代碼:
Activity

package com.view;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 隱藏狀態欄
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

// 把Activity的標題去掉
requestWindowFeature(Window.FEATURE_NO_TITLE);

// 設置布局
this.setContentView(new MySurfaceView(this));
}
}

SurfaceView

package com.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;

public class MySurfaceView extends SurfaceView implements Runnable, Callback {

private SurfaceHolder mHolder; // 用於控制SurfaceView

private Thread t; // 聲明一條線程

private boolean flag; // 線程運行的標識,用於控制線程

private Canvas mCanvas; // 聲明一張畫布

private Paint p; // 聲明一支畫筆

private int x = 50, y = 50, r = 10; // 圓的坐標和半徑

public MySurfaceView(Context context) {
super(context);

mHolder = getHolder(); // 獲得SurfaceHolder對象
mHolder.addCallback(this); // 為SurfaceView添加狀態監聽
p = new Paint(); // 創建一個畫筆對象
p.setColor(Color.WHITE); // 設置畫筆的顏色為白色
setFocusable(true); // 設置焦點
}

/**
* 自定義一個方法,在畫布上畫一個圓
*/
public void Draw() {
mCanvas = mHolder.lockCanvas(); // 獲得畫布對象,開始對畫布畫畫
mCanvas.drawRGB(0, 0, 0); // 把畫布填充為黑色
mCanvas.drawCircle(x, y, r, p); // 畫一個圓
mHolder.unlockCanvasAndPost(mCanvas); // 完成畫畫,把畫布顯示在屏幕上
}

/**
* 當SurfaceView創建的時候,調用此函數
*/
@Override
public void surfaceCreated(SurfaceHolder holder) {
t = new Thread(this); // 創建一個線程對象
flag = true; // 把線程運行的標識設置成true
t.start(); // 啟動線程
}

/**
* 當SurfaceView的視圖發生改變的時候,調用此函數
*/
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}

/**
* 當SurfaceView銷毀的時候,調用此函數
*/
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
flag = false; // 把線程運行的標識設置成false
}

/**
* 當屏幕被觸摸時調用
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
x = (int) event.getX(); // 獲得屏幕被觸摸時對應的X軸坐標
y = (int) event.getY(); // 獲得屏幕被觸摸時對應的Y軸坐標
return true;
}

/**
* 當用戶按鍵時調用
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DPAD_UP){ //當用戶點擊↑鍵時
y--; //設置Y軸坐標減1
}
return super.onKeyDown(keyCode, event);
}

@Override
public void run() {
while (flag) {
Draw(); // 調用自定義畫畫方法
try {
Thread.sleep(50); // 讓線程休息50毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}

MySurfaceView首先繼承SurfaceView,然後實現Runnable和Callback介面

重寫了Runnable的run方法和Callback的surfaceCreated(SurfaceHolder holder),surfaceChanged(SurfaceHolder holder, int format, int width,int height),surfaceDestroyed(SurfaceHolder holder)方法,
還實現了onTouchEvent(MotionEvent event),onKeyDown(int keyCode, KeyEvent event)方法來,詳細的在代碼里已注釋。

❽ android 能在bitmap上繪制圓嗎

能,這是往圖片(圖片轉為Bitmap)上寫入文字、圖片,你換成畫圓就是得了。
/**
* 往圖片上寫入文字、圖片等內容
*/
private void drawNewBitmap(String str) {
Bitmap photo = BitmapFactory.decodeResource(this.getResources(),R.drawable.introce_first);

int width = photo.getWidth();
int hight = photo.getHeight();

Bitmap bitmap = Bitmap.createBitmap(width, hight, Bitmap.Config.ARGB_8888); // 建立一個空的BItMap
Canvas canvas = new Canvas(bitmap);// 初始化畫布繪制的圖像到icon上

Paint photoPaint = new Paint(); // 建立畫筆
photoPaint.setDither(true); // 獲取跟清晰的圖像采樣
photoPaint.setFilterBitmap(true);// 過濾一些

Rect src = new Rect(0, 0, photo.getWidth(), photo.getHeight());// 創建一個指定的新矩形的坐標
Rect dst = new Rect(0, 0, width, hight);// 創建一個指定的新矩形的坐標
canvas.drawBitmap(photo, src, dst, photoPaint);// 將photo 縮放或則擴大到
// dst使用的填充區photoPaint

Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);// 設置畫筆
textPaint.setTextSize(30.0f);// 字體大小
textPaint.setTypeface(Typeface.DEFAULT_BOLD);// 採用默認的寬度
textPaint.setColor(Color.BLACK);// 採用的顏色
canvas.drawText(str, 200, 200, textPaint);// 繪制上去字,開始未知x,y採用那隻筆繪制
canvas.drawBitmap(BitmapFactory.decodeResource(this.getResources(),R.drawable.ic_launcher), 100, 100, textPaint);
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
iv.setBackgroundDrawable(new BitmapDrawable(this.getResources(), bitmap));
saveMyBitmap(bitmap,"test1");
}

❾ android studio怎樣自己畫一個圓

還在為布局需要一個圓而到處找不到合適的圖片煩惱嗎?沒關系,今天就教你用代碼畫出一個圓出來,不需要任何圖片
http://jingyan..com/article/6f2f55a1ab07c3b5b83e6c75.html

java(android)中怎麼畫一個圓詳細點,我新手,3Q

畫一個圈?可以直接加圖片上去.

熱點內容
作為基線存儲 發布:2025-05-16 08:15:22 瀏覽:857
安卓怎麼關閉手機應用推薦 發布:2025-05-16 08:03:38 瀏覽:929
sql內置函數 發布:2025-05-16 08:03:34 瀏覽:922
怎麼看伺服器內存型號 發布:2025-05-16 08:03:30 瀏覽:812
哪裡修安卓手機最好 發布:2025-05-16 07:58:25 瀏覽:825
伺服器和電腦是什麼區別 發布:2025-05-16 07:58:24 瀏覽:720
安卓116是什麼意思 發布:2025-05-16 07:44:59 瀏覽:591
配置低而動力好的車怎麼選 發布:2025-05-16 07:44:15 瀏覽:900
如何退出登錄的伺服器界面 發布:2025-05-16 07:41:58 瀏覽:71
機斗勇者2勇者證密碼多少 發布:2025-05-16 07:40:18 瀏覽:48