Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
20
Cevap
603
Tıklama
0
Öne Çıkarma
Android sadece TableLayout’da daire çizmek(canvas)
W
6 yıl
Yüzbaşı
Konu Sahibi

Merhaba,

arkadaşlar ben sadece TableLayout’da daire çizmek istiyorum. setcontentview veya addcontentview ile tüm activityde daire çizebiliyorum. Ama ben sadece TableLayout’da çizmek istiyorum.

Nasıl yapabilirim?

Yardımınıza ihtiyacım var.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



< Bu ileti DH mobil uygulamasından atıldı >

K
6 yıl
Binbaşı

https://stackoverflow.com/questions/16262119/drawing-rectangle-inside-tablelayout-in-android-app

Hocam burda bir örnek var ama pc başında değilim şuan. Bakabilir misiniz?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
K
6 yıl
Binbaşı

https://github.com/gabrielemariotti/androiddev/tree/master/ShapeFinger
https://www.youtube.com/watch?v=zKUP7nEUh4o

Burdaki örneği senin oyuna uyarladım.
Senin kodları biraz düzenledim.

Yeni bulmaca için sürekli yeni activity açmana gerek yok.ImageButton'a reset metodu ekledim. Senin kodları da reset metoduna ekledim.



import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.ImageButton;
import android.widget.TableLayout;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;


public class MainActivity extends AppCompatActivity {

TableLayout bulmacatablo;
TextView sozcuka, sozcukb, sozcukc, sozcukd, sozcuke, sozcukf, sozcukg, sozcukh, sozcuki, sozcukj, kortv;
ImageButton anasayfabtn;
ArrayList<Integer> xbas;

protected DrawingView mDrawingView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


initViews();
reset();

mDrawingView = (DrawingView) findViewById(R.id.drawingView);
mDrawingView.mCurrentShape = DrawingView.RECTANGLE;
mDrawingView.reset();


anasayfabtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View anasayfav) {

reset();
//mDrawingView.reset();

}
});


}

private void initViews() {
bulmacatablo = (TableLayout) findViewById(R.id.tablo);

sozcuka = (TextView) findViewById(R.id.sozcukta);
sozcukb = (TextView) findViewById(R.id.sozcuktb);
sozcukc = (TextView) findViewById(R.id.sozcuktc);
sozcukd = (TextView) findViewById(R.id.sozcuktd);
sozcuke = (TextView) findViewById(R.id.sozcukte);
sozcukf = (TextView) findViewById(R.id.sozcuktf);
sozcukg = (TextView) findViewById(R.id.sozcuktg);
sozcukh = (TextView) findViewById(R.id.sozcukth);
sozcuki = (TextView) findViewById(R.id.sozcukti);
sozcukj = (TextView) findViewById(R.id.sozcuktj);

anasayfabtn = (ImageButton) findViewById(R.id.anasayfab);
}

private void reset() {
ArrayList<TextView> sozcukler = new ArrayList<TextView>();

sozcukler.add(sozcuka);
sozcukler.add(sozcukb);
sozcukler.add(sozcukc);
sozcukler.add(sozcukd);
sozcukler.add(sozcuke);
sozcukler.add(sozcukf);
sozcukler.add(sozcukg);
sozcukler.add(sozcukh);
sozcukler.add(sozcuki);
sozcukler.add(sozcukj);

final ArrayList<String> bulmacakelimeler = new ArrayList<String>();
ArrayList<String> bulmacakelimelerr = new ArrayList<String>();


bulmacakelime(bulmacakelimelerr);

for (int ikelime = 0; ikelime < bulmacakelimelerr.size(); ikelime++) {
bulmacakelimelerr.set(ikelime, bulmacakelimelerr.get(ikelime).toUpperCase());
}

for (int iiiii = 0; iiiii < 10; iiiii++) {

Collections.shuffle(bulmacakelimelerr);
bulmacakelimeler.add(bulmacakelimelerr.get(0));
bulmacakelimelerr.remove(0);

}

Integer[][] bulmaca = {
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
};

Integer[] satirlarr = new Integer[1011];

satirdizi(satirlarr);

final ArrayList<Integer> satirlar = new ArrayList<Integer>();

satirlar.addAll(Arrays.asList(satirlarr));

Random yersec = new Random();
List<Integer> secbiryerarray;
int bulunanyerindex, bulunanyer, bulunanyerrindex, bulunanyerr;
ArrayList<String> kelimedogrultu;
char[] kelimekarakter;

int isozcuk = -1;

Log.w("Dikkat", "2");

for (int i = 0; i < bulmacakelimeler.size(); i++) {

isozcuk++;

secbiryerarray = new ArrayList<Integer>();

bulunanyerindex = yersec.nextInt(10);
bulunanyer = bulunanyerindex + 1;

kelimedogrultu = new ArrayList<String>();
kelimedogrultu.add("yukari");
kelimedogrultu.add("asagi");
kelimedogrultu.add("sag");
kelimedogrultu.add("sol");

if (bulunanyer < bulmacakelimeler.get(i).length()) {

kelimedogrultu.remove(kelimedogrultu.indexOf("yukari"));

}

Log.w("Dikkat", "3");

if ((10 - bulunanyer) + 1 < bulmacakelimeler.get(i).length()) {

kelimedogrultu.remove(kelimedogrultu.indexOf("asagi"));

}

Log.w("Dikkat", "4");

secbiryerarray = Arrays.asList(bulmaca[bulunanyerindex]);

bulunanyerrindex = yersec.nextInt(secbiryerarray.size());
bulunanyerr = bulunanyerrindex + 1;

if (bulunanyerr < bulmacakelimeler.get(i).length()) {

kelimedogrultu.remove(kelimedogrultu.indexOf("sol"));

}

if ((10 - bulunanyerr) + 1 < bulmacakelimeler.get(i).length()) {

kelimedogrultu.remove(kelimedogrultu.indexOf("sag"));

}

Log.w("Dikkat", "5");

if (kelimedogrultu.contains("yukari")) {

for (int ikkarakter = 1; ikkarakter < (bulmacakelimeler.get(i).length() - 1); ikkarakter++) {

if (!Arrays.asList(bulmaca[bulunanyerindex - ikkarakter][bulunanyerrindex]).contains(bulunanyerr)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("yukari"));

break;

}

if (Arrays.asList(bulmaca[bulunanyerindex - ikkarakter][bulunanyerrindex]).contains(999)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("yukari"));

break;

}

}

/*if(!Arrays.asList(bulmaca[bulunanyerindex-1][bulunanyerrindex]).contains(bulunanyerr) || !Arrays.asList(bulmaca[bulunanyerindex-2][bulunanyerrindex]).contains(bulunanyerr) || !Arrays.asList(bulmaca[bulunanyerindex-3][bulunanyerrindex]).contains(bulunanyerr)){

kelimedogrultu.remove(kelimedogrultu.indexOf("yukari"));

}*/

}

if (kelimedogrultu.contains("asagi")) {

for (int ikkarakter = 1; ikkarakter < (bulmacakelimeler.get(i).length() - 1); ikkarakter++) {

if (!Arrays.asList(bulmaca[bulunanyerindex + ikkarakter][bulunanyerrindex]).contains(bulunanyerr)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("asagi"));

break;

}

if (Arrays.asList(bulmaca[bulunanyerindex + ikkarakter][bulunanyerrindex]).contains(999)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("asagi"));

break;

}

}

/*if(!Arrays.asList(bulmaca[bulunanyerindex+1][bulunanyerrindex]).contains(bulunanyerr) || !Arrays.asList(bulmaca[bulunanyerindex+2][bulunanyerrindex]).contains(bulunanyerr) || !Arrays.asList(bulmaca[bulunanyerindex+3][bulunanyerrindex]).contains(bulunanyerr)){

kelimedogrultu.remove(kelimedogrultu.indexOf("asagi"));

}*/

}

if (kelimedogrultu.contains("sol")) {

for (int ikkarakter = 1; ikkarakter < (bulmacakelimeler.get(i).length() - 1); ikkarakter++) {

if (!Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex - ikkarakter]).contains(bulunanyerr - ikkarakter)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("sol"));

break;

}

if (Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex - ikkarakter]).contains(999)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("sol"));

break;

}

}

/*if(!Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex-1]).contains(bulunanyerr-1) || !Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex-2]).contains(bulunanyerr-2) || !Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex-3]).contains(bulunanyerr-3)){

kelimedogrultu.remove(kelimedogrultu.indexOf("sol"));

}*/

}

if (kelimedogrultu.contains("sag")) {

for (int ikkarakter = 1; ikkarakter < (bulmacakelimeler.get(i).length() - 1); ikkarakter++) {

if (!Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex + ikkarakter]).contains(bulunanyerr + ikkarakter)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("sag"));

break;

}

if (Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex + ikkarakter]).contains(999)) {

kelimedogrultu.remove(kelimedogrultu.indexOf("sag"));

break;

}

}

/*if(!Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex+1]).contains(bulunanyerr+1) || !Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex+2]).contains(bulunanyerr+2) || !Arrays.asList(bulmaca[bulunanyerindex][bulunanyerrindex+3]).contains(bulunanyerr+3)){

kelimedogrultu.remove(kelimedogrultu.indexOf("sag"));

}*/

}

Log.w("Dikkat", "7");

if (kelimedogrultu.contains("yukari") || kelimedogrultu.contains("asagi") || kelimedogrultu.contains("sag") || kelimedogrultu.contains("sol")) {

sozcukler.get(isozcuk).setText(bulmacakelimeler.get(i));

kelimekarakter = bulmacakelimeler.get(i).toCharArray();

Collections.shuffle(kelimedogrultu);

int hangilerisecildi;
TextView bulmacakelime;

if (kelimedogrultu.get(0).equals("yukari")) {

for (int ii = 0; ii < kelimekarakter.length; ii++) {

hangilerisecildi = Integer.valueOf(Integer.toString(bulunanyer - ii) + Integer.toString(bulunanyerr));
bulmacakelime = (TextView) findViewById(satirlar.get(hangilerisecildi));
bulmacakelime.setText(kelimekarakter[ii] + "");
bulmaca[bulunanyerindex - ii][bulunanyerrindex] = 999;

}

} else if (kelimedogrultu.get(0).equals("asagi")) {

for (int ii = 0; ii < kelimekarakter.length; ii++) {

hangilerisecildi = Integer.valueOf(Integer.toString(bulunanyer + ii) + Integer.toString(bulunanyerr));
bulmacakelime = (TextView) findViewById(satirlar.get(hangilerisecildi));
bulmacakelime.setText(kelimekarakter[ii] + "");
bulmaca[bulunanyerindex + ii][bulunanyerrindex] = 999;

}

} else if (kelimedogrultu.get(0).equals("sag")) {

for (int ii = 0; ii < kelimekarakter.length; ii++) {

hangilerisecildi = Integer.valueOf(Integer.toString(bulunanyer) + Integer.toString(bulunanyerr + ii));
bulmacakelime = (TextView) findViewById(satirlar.get(hangilerisecildi));
bulmacakelime.setText(kelimekarakter[ii] + "");
bulmaca[bulunanyerindex][bulunanyerrindex + ii] = 999;

}

} else if (kelimedogrultu.get(0).equals("sol")) {

for (int ii = 0; ii < kelimekarakter.length; ii++) {

hangilerisecildi = Integer.valueOf(Integer.toString(bulunanyer) + Integer.toString(bulunanyerr - ii));
bulmacakelime = (TextView) findViewById(satirlar.get(hangilerisecildi));
bulmacakelime.setText(kelimekarakter[ii] + "");
bulmaca[bulunanyerindex][bulunanyerrindex - ii] = 999;

}

}

kelimedogrultu.clear();

} else {

isozcuk = isozcuk - 1;

bulmacakelimeler.remove(i);

}

}

ArrayList<String> gereksizharfler = new ArrayList<String>();
gereksizharf(gereksizharfler);

TextView gereksizharfkelime;
int gereksizharfindex, gereksizharf, gereksizharffindex, gereksizharff;

for (int iii = 0; iii < 10; iii++) {
for (int iiii = 0; iiii < bulmaca[iii].length; iiii++) {

Log.w("Dikkat", iiii + "");
if (!bulmaca[iii][iiii].equals(999)) {

gereksizharfindex = iii;
gereksizharf = gereksizharfindex + 1;

gereksizharffindex = iiii;
gereksizharff = gereksizharffindex + 1;

Collections.shuffle(gereksizharfler);
bulmaca[gereksizharfindex][gereksizharffindex] = 999;
gereksizharfkelime = (TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(gereksizharf) + Integer.toString(gereksizharff))));
gereksizharfkelime.setText(gereksizharfler.get(0));

}

}

}

xbas = new ArrayList<Integer>();
final ArrayList<Integer> xson = new ArrayList<Integer>();
final ArrayList<Integer> ybas = new ArrayList<Integer>();
final ArrayList<Integer> yson = new ArrayList<Integer>();

//ArrayList<Float> korx = new ArrayList<Float>();
//ArrayList<Float> kory = new ArrayList<Float>();

//int[] korint = new int[2];

//addContentView(new cizim(bulmacatablo.getContext()), bulmacatablo.getLayoutParams());

ArrayList<Integer> tablorows = new ArrayList<Integer>();
tablorows.add(R.id.tabloa);
tablorows.add(R.id.tablob);
tablorows.add(R.id.tabloc);
tablorows.add(R.id.tablod);
tablorows.add(R.id.tabloe);
tablorows.add(R.id.tablof);
tablorows.add(R.id.tablog);
tablorows.add(R.id.tabloh);
tablorows.add(R.id.tabloi);
tablorows.add(R.id.tabloj);

// TableRow trow= new TableRow(this);
// trow = (TableRow)findViewById(R.id.tabloa);

// trow.addView(new cizim(this));
// trow.addView(new cizim(this));
// trow.addView(new cizim(this));
// trow.addView(new cizim(this));

bulmacatablo.invalidate();
bulmacatablo.refreshDrawableState();

/*
for(int iczm = 0; iczm < 3; iczm++){

//trow = (TableRow)findViewById(tablorows.get(iczm));

trow = new TableRow(this);

trow.addView(new cizim(this));
trow.addView(new cizim(this));

//bulmacatablo.removeView(trow);

for(int iczmm = 0; iczmm < 10; iczmm++){

trow.addView(new cizim(this));

}

bulmacatablo.addView(trow);

//trow = null;

bulmacatablo.invalidate();
bulmacatablo.refreshDrawableState();

}

*/

loop(satirlar, xson, ybas, yson);

/*final TextView korrtv;

korrtv = (TextView)findViewById(R.id.tabloaa);

korrtv.getViewTreeObserver().addOnGlobalLayoutListener ( new ViewTreeObserver.OnGlobalLayoutListener () {
public void onGlobalLayout(){

Log.w("Dikkat", korrtv.getLeft() + " " + korrtv.getRight() + " " + korrtv.getTop() + " " + korrtv.getBottom());

}
});


final TextView korrrtv = (TextView)findViewById(R.id.tabloab);

korrtv.getViewTreeObserver().addOnGlobalLayoutListener ( new ViewTreeObserver.OnGlobalLayoutListener () {
public void onGlobalLayout(){

Log.w("Dikkat", korrrtv.getLeft() + " " + korrrtv.getRight() + " " + korrrtv.getTop() + " " + korrrtv.getBottom());

}
});*/
}

private void satirdizi(Integer[] satirlarr) {
satirlarr[11] = R.id.tabloaa;
satirlarr[12] = R.id.tabloab;
satirlarr[13] = R.id.tabloac;
satirlarr[14] = R.id.tabload;
satirlarr[15] = R.id.tabloae;
satirlarr[16] = R.id.tabloaf;
satirlarr[17] = R.id.tabloag;
;
satirlarr[18] = R.id.tabloah;
satirlarr[19] = R.id.tabloai;
satirlarr[110] = R.id.tabloaj;

satirlarr[21] = R.id.tabloba;
satirlarr[22] = R.id.tablobb;
satirlarr[23] = R.id.tablobc;
satirlarr[24] = R.id.tablobd;
satirlarr[25] = R.id.tablobe;
satirlarr[26] = R.id.tablobf;
satirlarr[27] = R.id.tablobg;
satirlarr[28] = R.id.tablobh;
satirlarr[29] = R.id.tablobi;
satirlarr[210] = R.id.tablobj;

satirlarr[31] = R.id.tabloca;
satirlarr[32] = R.id.tablocb;
satirlarr[33] = R.id.tablocc;
satirlarr[34] = R.id.tablocd;
satirlarr[35] = R.id.tabloce;
satirlarr[36] = R.id.tablocf;
satirlarr[37] = R.id.tablocg;
satirlarr[38] = R.id.tabloch;
satirlarr[39] = R.id.tabloci;
satirlarr[310] = R.id.tablocj;

satirlarr[41] = R.id.tabloda;
satirlarr[42] = R.id.tablodb;
satirlarr[43] = R.id.tablodc;
satirlarr[44] = R.id.tablodd;
satirlarr[45] = R.id.tablode;
satirlarr[46] = R.id.tablodf;
satirlarr[47] = R.id.tablodg;
satirlarr[48] = R.id.tablodh;
satirlarr[49] = R.id.tablodi;
satirlarr[410] = R.id.tablodj;

satirlarr[51] = R.id.tabloea;
satirlarr[52] = R.id.tabloeb;
satirlarr[53] = R.id.tabloec;
satirlarr[54] = R.id.tabloed;
satirlarr[55] = R.id.tabloee;
satirlarr[56] = R.id.tabloef;
satirlarr[57] = R.id.tabloeg;
satirlarr[58] = R.id.tabloeh;
satirlarr[59] = R.id.tabloei;
satirlarr[510] = R.id.tabloej;

satirlarr[61] = R.id.tablofa;
satirlarr[62] = R.id.tablofb;
satirlarr[63] = R.id.tablofc;
satirlarr[64] = R.id.tablofd;
satirlarr[65] = R.id.tablofe;
satirlarr[66] = R.id.tabloff;
satirlarr[67] = R.id.tablofg;
satirlarr[68] = R.id.tablofh;
satirlarr[69] = R.id.tablofi;
satirlarr[610] = R.id.tablofj;

satirlarr[71] = R.id.tabloga;
satirlarr[72] = R.id.tablogb;
satirlarr[73] = R.id.tablogc;
satirlarr[74] = R.id.tablogd;
satirlarr[75] = R.id.tabloge;
satirlarr[76] = R.id.tablogf;
satirlarr[77] = R.id.tablogg;
satirlarr[78] = R.id.tablogh;
satirlarr[79] = R.id.tablogi;
satirlarr[710] = R.id.tablogj;

satirlarr[81] = R.id.tabloha;
satirlarr[82] = R.id.tablohb;
satirlarr[83] = R.id.tablohc;
satirlarr[84] = R.id.tablohd;
satirlarr[85] = R.id.tablohe;
satirlarr[86] = R.id.tablohf;
satirlarr[87] = R.id.tablohg;
satirlarr[88] = R.id.tablohh;
satirlarr[89] = R.id.tablohi;
satirlarr[810] = R.id.tablohj;

satirlarr[91] = R.id.tabloia;
satirlarr[92] = R.id.tabloib;
satirlarr[93] = R.id.tabloic;
satirlarr[94] = R.id.tabloid;
satirlarr[95] = R.id.tabloie;
satirlarr[96] = R.id.tabloif;
satirlarr[97] = R.id.tabloig;
satirlarr[98] = R.id.tabloih;
satirlarr[99] = R.id.tabloii;
satirlarr[910] = R.id.tabloij;

satirlarr[101] = R.id.tabloja;
satirlarr[102] = R.id.tablojb;
satirlarr[103] = R.id.tablojc;
satirlarr[104] = R.id.tablojd;
satirlarr[105] = R.id.tabloje;
satirlarr[106] = R.id.tablojf;
satirlarr[107] = R.id.tablojg;
satirlarr[108] = R.id.tablojh;
satirlarr[109] = R.id.tabloji;
satirlarr[1010] = R.id.tablojj;
}

private void bulmacakelime(ArrayList<String> bulmacakelimelerr) {
bulmacakelimelerr.add("araba");
bulmacakelimelerr.add("öğretmen");
bulmacakelimelerr.add("polis");
bulmacakelimelerr.add("mühendis");
bulmacakelimelerr.add("doktor");
bulmacakelimelerr.add("futbol");
bulmacakelimelerr.add("voleybol");
bulmacakelimelerr.add("basketbol");
bulmacakelimelerr.add("golf");
bulmacakelimelerr.add("tenis");
bulmacakelimelerr.add("raf");
bulmacakelimelerr.add("dolap");
bulmacakelimelerr.add("televizyon");
bulmacakelimelerr.add("mum");
bulmacakelimelerr.add("ayna");
bulmacakelimelerr.add("lamba");
bulmacakelimelerr.add("telefon");
bulmacakelimelerr.add("bilgisayar");
bulmacakelimelerr.add("anahtar");
bulmacakelimelerr.add("disk");
bulmacakelimelerr.add("bellek");
bulmacakelimelerr.add("kart");
bulmacakelimelerr.add("eşofman");
bulmacakelimelerr.add("şapka");
bulmacakelimelerr.add("saat");
bulmacakelimelerr.add("bilezik");
bulmacakelimelerr.add("kolye");
bulmacakelimelerr.add("yüzük");
bulmacakelimelerr.add("gözlük");
bulmacakelimelerr.add("kablo");
bulmacakelimelerr.add("sepet");
bulmacakelimelerr.add("kulaklık");
bulmacakelimelerr.add("kağıt");
bulmacakelimelerr.add("kalem");
bulmacakelimelerr.add("kalemlik");
bulmacakelimelerr.add("dosya");
bulmacakelimelerr.add("defter");
bulmacakelimelerr.add("kitap");
bulmacakelimelerr.add("silgi");
bulmacakelimelerr.add("masa");
bulmacakelimelerr.add("sandalye");
bulmacakelimelerr.add("yastık");
bulmacakelimelerr.add("kılık");
bulmacakelimelerr.add("kanepe");
bulmacakelimelerr.add("madalyon");
bulmacakelimelerr.add("peçete");
bulmacakelimelerr.add("günlük");
bulmacakelimelerr.add("meslek");
bulmacakelimelerr.add("dişçi");
bulmacakelimelerr.add("fırıncı");
bulmacakelimelerr.add("market");
bulmacakelimelerr.add("oyuncak");
bulmacakelimelerr.add("fil");
bulmacakelimelerr.add("maymun");
bulmacakelimelerr.add("zürafa");
bulmacakelimelerr.add("fare");
bulmacakelimelerr.add("goril");
bulmacakelimelerr.add("klavye");
bulmacakelimelerr.add("tuş");
bulmacakelimelerr.add("hoparlör");
bulmacakelimelerr.add("aslan");
bulmacakelimelerr.add("kaplan");
bulmacakelimelerr.add("kedi");
bulmacakelimelerr.add("köpek");
bulmacakelimelerr.add("yılan");
bulmacakelimelerr.add("güneş");
bulmacakelimelerr.add("krem");
bulmacakelimelerr.add("merhem");
bulmacakelimelerr.add("ilaç");
bulmacakelimelerr.add("deniz");
bulmacakelimelerr.add("kum");
bulmacakelimelerr.add("okyanus");
bulmacakelimelerr.add("göl");
bulmacakelimelerr.add("kanal");
bulmacakelimelerr.add("park");
bulmacakelimelerr.add("ağaç");
bulmacakelimelerr.add("orman");
bulmacakelimelerr.add("türkü");
bulmacakelimelerr.add("şarkı");
bulmacakelimelerr.add("davul");
bulmacakelimelerr.add("cetvel");
bulmacakelimelerr.add("çizgi");
bulmacakelimelerr.add("bant");
bulmacakelimelerr.add("sunum");
bulmacakelimelerr.add("slayt");
bulmacakelimelerr.add("çerçeve");
bulmacakelimelerr.add("zımba");
bulmacakelimelerr.add("ataç");
bulmacakelimelerr.add("ofis");
bulmacakelimelerr.add("melodika");
bulmacakelimelerr.add("klarnet");
bulmacakelimelerr.add("slime");
bulmacakelimelerr.add("tasarım");
bulmacakelimelerr.add("boya");
bulmacakelimelerr.add("fırça");
bulmacakelimelerr.add("tablo");
bulmacakelimelerr.add("koli");
bulmacakelimelerr.add("karton");
bulmacakelimelerr.add("gitar");
bulmacakelimelerr.add("saz");
bulmacakelimelerr.add("ukulele");
bulmacakelimelerr.add("bağlama");
bulmacakelimelerr.add("kalemtıraş");
bulmacakelimelerr.add("üçgen");
bulmacakelimelerr.add("kare");
bulmacakelimelerr.add("beşgen");
bulmacakelimelerr.add("altıgen");
bulmacakelimelerr.add("yamuk");
bulmacakelimelerr.add("çokgen");
bulmacakelimelerr.add("dörtgen");
bulmacakelimelerr.add("yıldız");
bulmacakelimelerr.add("daire");
bulmacakelimelerr.add("yunus");
bulmacakelimelerr.add("balina");
bulmacakelimelerr.add("balık");
bulmacakelimelerr.add("yengeç");
bulmacakelimelerr.add("ahtapot");
bulmacakelimelerr.add("karides");
bulmacakelimelerr.add("kurbağa");
bulmacakelimelerr.add("timsah");
bulmacakelimelerr.add("kaz");
bulmacakelimelerr.add("ördek");
bulmacakelimelerr.add("bisiklet");
bulmacakelimelerr.add("fayton");
bulmacakelimelerr.add("kamyon");
bulmacakelimelerr.add("metrobüs");
bulmacakelimelerr.add("makas");
bulmacakelimelerr.add("gül");
bulmacakelimelerr.add("lale");
bulmacakelimelerr.add("karanfil");
bulmacakelimelerr.add("zambak");
bulmacakelimelerr.add("nergis");
bulmacakelimelerr.add("sümbül");
bulmacakelimelerr.add("nilüfer");
bulmacakelimelerr.add("menekşe");
bulmacakelimelerr.add("leylek");
bulmacakelimelerr.add("papatya");
bulmacakelimelerr.add("vida");
bulmacakelimelerr.add("çekiç");
bulmacakelimelerr.add("pense");
bulmacakelimelerr.add("tornavida");
bulmacakelimelerr.add("keman");
bulmacakelimelerr.add("org");
bulmacakelimelerr.add("flüt");
bulmacakelimelerr.add("marakas");
bulmacakelimelerr.add("takvim");
bulmacakelimelerr.add("cam");
bulmacakelimelerr.add("gazete");
bulmacakelimelerr.add("havaalanı");
bulmacakelimelerr.add("otel");
bulmacakelimelerr.add("hastane");
bulmacakelimelerr.add("postane");
bulmacakelimelerr.add("müze");
bulmacakelimelerr.add("sinema");
bulmacakelimelerr.add("yaz");
bulmacakelimelerr.add("kış");
bulmacakelimelerr.add("ilkbahar");
bulmacakelimelerr.add("sonbahar");
bulmacakelimelerr.add("hafta");
bulmacakelimelerr.add("gün");
}

private void gereksizharf(ArrayList<String> gereksizharfler) {
gereksizharfler.add("A");
gereksizharfler.add("B");
gereksizharfler.add("C");
gereksizharfler.add("Ç");
gereksizharfler.add("D");
gereksizharfler.add("E");
gereksizharfler.add("F");
gereksizharfler.add("G");
gereksizharfler.add("Ğ");
gereksizharfler.add("H");
gereksizharfler.add("İ");
gereksizharfler.add("I");
gereksizharfler.add("J");
gereksizharfler.add("K");
gereksizharfler.add("L");
gereksizharfler.add("M");
gereksizharfler.add("N");
gereksizharfler.add("O");
gereksizharfler.add("Ö");
gereksizharfler.add("P");
gereksizharfler.add("R");
gereksizharfler.add("S");
gereksizharfler.add("Ş");
gereksizharfler.add("T");
gereksizharfler.add("U");
gereksizharfler.add("Ü");
gereksizharfler.add("V");
gereksizharfler.add("Y");
gereksizharfler.add("Z");
}

private void loop(final ArrayList<Integer> satirlar, final ArrayList<Integer> xson, final ArrayList<Integer> ybas, final ArrayList<Integer> yson) {
for (int ikor = 1; ikor < 11; ikor++) {
final int ikori = ikor;
for (int ikorr = 1; ikorr < 11; ikorr++) {
final int ikorri = ikorr;

Log.e("Dikkat", "ikorri : " + ikori + " ikorri : " + ikorri);

((TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(ikori) + Integer.toString(ikorri))))).getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {

xbas.add(((TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(ikori) + Integer.toString(ikorri))))).getLeft());
xson.add(((TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(ikori) + Integer.toString(ikorri))))).getRight());
ybas.add(((TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(ikori) + Integer.toString(ikorri))))).getTop());
yson.add(((TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(ikori) + Integer.toString(ikorri))))).getBottom());

Log.w("Dikkat", "x bas : " + xbas.get(xbas.size() - 1) + " x son : " + xson.get((xson.size() - 1)) + " y bas : " + ybas.get(ybas.size() - 1) + " y son : " + yson.get(yson.size() - 1));

int[] intkor = new int[2];

((TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(ikori) + Integer.toString(ikorri))))).getLocationOnScreen(intkor);

Log.w("Dikkat", Integer.toString(intkor[0]) + " " + Integer.toString(intkor[1]));

((TextView) findViewById(satirlar.get(Integer.valueOf(Integer.toString(ikori) + Integer.toString(ikorri))))).getViewTreeObserver().removeOnGlobalLayoutListener(this);

}
});

}

}
}

public ArrayList<Integer> getxarray() {

return xbas;

}

}



Layout dosyasına ise cizim sınıfı yerine yukarıdaki linkteki View'i ekledim.



<com.minik.myapplication.DrawingView
android:id="@+id/drawingView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />



View sınıfı


/*
* Copyright 2014 Gabriele Mariotti
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

/**
* @author Gabriele Mariotti (gabri.mariotti@gmail.com)
*/
public class DrawingView extends View {

public static final int LINE = 1;
public static final int RECTANGLE = 3;
public static final int SQUARE = 4;
public static final int CIRCLE = 5;
public static final int TRIANGLE = 6;
public static final int SMOOTHLINE = 2;

public static final float TOUCH_TOLERANCE = 4;
public static final float TOUCH_STROKE_WIDTH = 5;

public int mCurrentShape;

protected Path mPath;
protected Paint mPaint;
protected Paint mPaintFinal;
protected Bitmap mBitmap;
protected Canvas mCanvas;

/**
* Indicates if you are drawing
*/
protected boolean isDrawing = false;

/**
* Indicates if the drawing is ended
*/
protected boolean isDrawingEnded = false;


protected float mStartX;
protected float mStartY;

protected float mx;
protected float my;

public DrawingView(Context context) {
super(context);
init();
}

public DrawingView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}

public DrawingView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(mBitmap, 0, 0, mPaint);

if (isDrawing){
switch (mCurrentShape) {
case LINE:
onDrawLine(canvas);
break;
case RECTANGLE:
onDrawRectangle(canvas);
break;
case SQUARE:
onDrawSquare(canvas);
break;
case CIRCLE:
onDrawCircle(canvas);
break;
case TRIANGLE:
onDrawTriangle(canvas);
break;
}
}
}




protected void init() {
mPath = new Path();

mPaint = new Paint(Paint.DITHER_FLAG);
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setColor(getContext().getResources().getColor(android.R.color.holo_blue_dark));
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(TOUCH_STROKE_WIDTH);


mPaintFinal = new Paint(Paint.DITHER_FLAG);
mPaintFinal.setAntiAlias(true);
mPaintFinal.setDither(true);
mPaintFinal.setColor(getContext().getResources().getColor(android.R.color.holo_orange_dark));
mPaintFinal.setStyle(Paint.Style.STROKE);
mPaintFinal.setStrokeJoin(Paint.Join.ROUND);
mPaintFinal.setStrokeCap(Paint.Cap.ROUND);
mPaintFinal.setStrokeWidth(TOUCH_STROKE_WIDTH);
}

protected void reset() {
mPath = new Path();
countTouch=0;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
mx = event.getX();
my = event.getY();
switch (mCurrentShape) {
case LINE:
onTouchEventLine(event);
break;
case SMOOTHLINE:
onTouchEventSmoothLine(event);
break;
case RECTANGLE:
onTouchEventRectangle(event);
break;
case SQUARE:
onTouchEventSquare(event);
break;
case CIRCLE:
onTouchEventCircle(event);
break;
case TRIANGLE:
onTouchEventTriangle(event);
break;
}
return true;
}



//------------------------------------------------------------------
// Line
//------------------------------------------------------------------

private void onDrawLine(Canvas canvas) {

float dx = Math.abs(mx - mStartX);
float dy = Math.abs(my - mStartY);
if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
canvas.drawLine(mStartX, mStartY, mx, my, mPaint);
}
}

private void onTouchEventLine(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isDrawing = true;
mStartX = mx;
mStartY = my;
invalidate();
break;
case MotionEvent.ACTION_MOVE:
invalidate();
break;
case MotionEvent.ACTION_UP:
isDrawing = false;
mCanvas.drawLine(mStartX, mStartY, mx, my, mPaintFinal);
invalidate();
break;
}
}

//------------------------------------------------------------------
// Smooth Line
//------------------------------------------------------------------


private void onTouchEventSmoothLine(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isDrawing = true;
mStartX = mx;
mStartY = my;

mPath.reset();
mPath.moveTo(mx, my);

invalidate();
break;
case MotionEvent.ACTION_MOVE:

float dx = Math.abs(mx - mStartX);
float dy = Math.abs(my - mStartY);
if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
mPath.quadTo(mStartX, mStartY, (mx + mStartX) / 2, (my + mStartY) / 2);
mStartX = mx;
mStartY = my;
}
mCanvas.drawPath(mPath, mPaint);
invalidate();
break;
case MotionEvent.ACTION_UP:
isDrawing = false;
mPath.lineTo(mStartX, mStartY);
mCanvas.drawPath(mPath, mPaintFinal);
mPath.reset();
invalidate();
break;
}
}

//------------------------------------------------------------------
// Triangle
//------------------------------------------------------------------

int countTouch =0;
float basexTriangle =0;
float baseyTriangle =0;

private void onDrawTriangle(Canvas canvas){

if (countTouch<3){
canvas.drawLine(mStartX,mStartY,mx,my,mPaint);
}else if (countTouch==3){
canvas.drawLine(mx,my,mStartX,mStartY,mPaint);
canvas.drawLine(mx,my,basexTriangle,baseyTriangle,mPaint);
}
}

private void onTouchEventTriangle(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
countTouch++;
if (countTouch==1){
isDrawing = true;
mStartX = mx;
mStartY = my;
} else if (countTouch==3){
isDrawing = true;
}
invalidate();
break;
case MotionEvent.ACTION_MOVE:
invalidate();
break;
case MotionEvent.ACTION_UP:
countTouch++;
isDrawing = false;
if (countTouch<3){
basexTriangle=mx;
baseyTriangle=my;
mCanvas.drawLine(mStartX,mStartY,mx,my,mPaintFinal);
} else if (countTouch>=3){
mCanvas.drawLine(mx,my,mStartX,mStartY,mPaintFinal);
mCanvas.drawLine(mx,my,basexTriangle,baseyTriangle,mPaintFinal);
countTouch =0;
}
invalidate();
break;
}
}

//------------------------------------------------------------------
// Circle
//------------------------------------------------------------------

private void onDrawCircle(Canvas canvas){
canvas.drawCircle(mStartX, mStartY, calculateRadius(mStartX, mStartY, mx, my), mPaint);
}

private void onTouchEventCircle(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isDrawing = true;
mStartX = mx;
mStartY = my;
invalidate();
break;
case MotionEvent.ACTION_MOVE:
invalidate();
break;
case MotionEvent.ACTION_UP:
isDrawing = false;
mCanvas.drawCircle(mStartX, mStartY, calculateRadius(mStartX,mStartY,mx,my), mPaintFinal);
invalidate();
break;
}
}

/**
*
* @return
*/
protected float calculateRadius(float x1, float y1, float x2, float y2) {

return (float) Math.sqrt(
Math.pow(x1 - x2, 2) +
Math.pow(y1 - y2, 2)
);
}

//------------------------------------------------------------------
// Rectangle
//------------------------------------------------------------------

private void onDrawRectangle(Canvas canvas) {
drawRectangle(canvas,mPaint);
}

private void onTouchEventRectangle(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isDrawing = true;
mStartX = mx;
mStartY = my;
invalidate();
break;
case MotionEvent.ACTION_MOVE:
invalidate();
break;
case MotionEvent.ACTION_UP:
isDrawing = false;
drawRectangle(mCanvas,mPaintFinal);
invalidate();
break;
}
;
}

private void drawRectangle(Canvas canvas,Paint paint){
float right = mStartX > mx ? mStartX : mx;
float left = mStartX > mx ? mx : mStartX;
float bottom = mStartY > my ? mStartY : my;
float top = mStartY > my ? my : mStartY;
canvas.drawRect(left, top , right, bottom, paint);
}

//------------------------------------------------------------------
// Square
//------------------------------------------------------------------

private void onDrawSquare(Canvas canvas) {
onDrawRectangle(canvas);
}

private void onTouchEventSquare(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
isDrawing = true;
mStartX = mx;
mStartY = my;
invalidate();
break;
case MotionEvent.ACTION_MOVE:
adjustSquare(mx, my);
invalidate();
break;
case MotionEvent.ACTION_UP:
isDrawing = false;
adjustSquare(mx, my);
drawRectangle(mCanvas,mPaintFinal);
invalidate();
break;
}
}

/**
* Adjusts current coordinates to build a square
* @param x
* @param y
*/
protected void adjustSquare(float x, float y) {
float deltaX = Math.abs(mStartX - x);
float deltaY = Math.abs(mStartY - y);

float max = Math.max(deltaX, deltaY);

mx = mStartX - x < 0 ? mStartX + max : mStartX - max;
my = mStartY - y < 0 ? mStartY + max : mStartY - max;
}


}






< Resime gitmek için tıklayın >





< Bu mesaj bu kişi tarafından değiştirildi kreat -- 15 Ağustos 2019; 19:30:57 >
Bu mesaja 1 cevap geldi.
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.