第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在畫布中繪制和擦除圓圈

在畫布中繪制和擦除圓圈

阿晨1998 2022-07-27 19:49:14
我是android的新手,所以我不知道這個問題是否基本。我想每隔 N 秒在畫布上畫一個圓圈。尋找教程,我成功地在畫布上畫了一個圓圈。但隨后問題出現(xiàn)了。我怎樣才能擦除我以前畫的圓圈。我這樣做的方式可能很糟糕,事實上,我只是畫了另一個圓圈(但是是白色的)。這意味著,每次迭代我都會畫一個白色圓圈以擦除前一個圓圈。然后是藍(lán)色的新圓圈。它在第一次迭代中完美地工作......但是一旦我開始在我已經(jīng)畫了一個圓圈的地方畫一個圓圈......事情就開始出錯了......就像再次繪制一些以前刪除的圓圈一樣又出現(xiàn)了。我真的不知道該怎么解釋。你可以看到執(zhí)行這段代碼會發(fā)生什么。我的游戲活動啟動器public class GameActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        Float max = new Float(200.42);        ArrayList<Float> liste_test = new ArrayList<Float>();        liste_test.add(new Float(36.8));        liste_test.add(new Float(147.8));        liste_test.add(new Float(97.8));        liste_test.add(new Float(max));        liste_test.add(new Float(10));        setContentView(new ExampleSurfaceView(this,liste_test,max));    }}我的 ExampleSurfaceView 使用列表中的“標(biāo)準(zhǔn)化”數(shù)據(jù)繪制圓圈。public class ExampleSurfaceView extends SurfaceView implements SurfaceHolder.Callback {    // Le holder    SurfaceHolder mSurfaceHolder;    // Le thread dans lequel le dessin se fera    DrawingThread mThread;    int oldPosition_x;    int oldPosition_y;    ArrayList<Integer> valeurs_capteurs;    int nb_valeurs;    public ExampleSurfaceView (Context context,ArrayList<Float> donees_capteur, Float max) {        super(context);        this.valeurs_capteurs=normalise(donees_capteur,max);        this.nb_valeurs=this.valeurs_capteurs.size();        mSurfaceHolder = getHolder();        mSurfaceHolder.addCallback(this);        mThread = new DrawingThread();    }    //pour récupérer des données uniforme peu importe le capteur    public ArrayList<Integer> normalise(ArrayList<Float> donnees, Float max){        valeurs_capteurs = new ArrayList<Integer>();        for (Float donnee : donnees) {            int donnee_normalized= (int)((donnee/max)*100);            valeurs_capteurs.add(donnee_normalized);        }        return valeurs_capteurs;    }當(dāng)我查看打印時,數(shù)據(jù)似乎是邏輯的,我擦除并打印到好的地方......但問題仍然存在......顯然我做錯了什么,但我不知道是什么經(jīng)過多次搜索。感謝你的協(xié)助。
查看完整描述

1 回答

?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗 獲得超4個贊

如果您嘗試刪除畫布上的所有內(nèi)容,您可以在onDraw方法的開頭調(diào)用它:

canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR)

此外,為了每秒繪制 60 次畫布,您可以在函數(shù)invalidate()結(jié)束時調(diào)用。onDraw您可能不需要表面,只需使用自定義View而不是SurfaceView,這樣每次onDraw調(diào)用時都會自動清除


查看完整回答
反對 回復(fù) 2022-07-27
  • 1 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號