Jestem początkującym programistą dla Androida i pochodzę ze świata WP7, więc znalazłem wiele znanych narzędzi, których nie ma. Jedną z moich ulubionych jest http://www.jeff.wilcox.name/2011/10/metrogridhelper/, która jest dla mnie bardzo pomocna, gdy dowiem się, co jest nie tak z układem interfejsu użytkownika lub wyrównaniem podczas debugowania. Zastanawiam się więc, czy istnieje alternatywa w świecie androidów, czy też ktoś może dać mi wskazówki, jak zaimplementować podobne rzeczy w Androidzie.Alternatywą dla Androida do MetroGridHelper
6
A
Odpowiedz
0
OK, więc udało nam się to ustalić. ZASTOSOWANIE:
if(Debug.isDebuggerConnected())
grid = new Grid(this);
Kod źródłowy jest następujący
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
public class Grid {
private WindowManager mWindowManager;
private GeoView geoView = null;
AttributeSet attr = null;
public Grid(Context context) {
geoView = new GeoView(context, attr);
// context.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);
mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
// | WindowManager.LayoutParams.FLAG_FULLSCREEN
mWindowManager.addView(geoView, lp);
}
protected void finalize() {
mWindowManager.removeView(geoView);
}
public class GeoView extends View implements Runnable {
private Paint mPaint = null;
private int rectWidth = 25;
private int rectHeight = 25;
private int rectSpace = 12;
private int space = 12;
private WindowManager mWindowManager;
private int screenWidth = 0;
private int screenHeight = 0;
private int columnLoopCount = 0;
private int rowLoopCount = 0;
public GeoView(Context context, AttributeSet attr) {
super(context, attr);
mWindowManager = (WindowManager) context.getSystemService("window");
Display disp = mWindowManager.getDefaultDisplay();
screenWidth = disp.getWidth();
screenHeight = disp.getHeight();
// Log.d(TAG, "screen width="+disp.getWidth());
// Log.d(TAG, "screen height="+disp.getHeight());
columnLoopCount = (screenWidth - space)/(rectWidth + rectSpace);
rowLoopCount = (screenHeight - space)/(rectHeight + rectSpace);
columnLoopCount++;
rowLoopCount++;
mPaint = new Paint();
new Thread(this).start();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPaint.setAntiAlias(true);
// mPaint.setStyle(Paint.Style.FILL);
mPaint.setStyle(Paint.Style.STROKE);
for (int i = 0; i < rowLoopCount; i++) {
for (int j = 0; j < columnLoopCount; j++) {
int newX = j * (rectWidth + rectSpace);
int newY = i * (rectWidth + rectSpace);
Rect rect1 = new Rect();
rect1.left = space + newX;
rect1.top = space + newY;
rect1.right = space + rectWidth + newX;
rect1.bottom = space + rectHeight + newY;
// Log.d(TAG,
// "i="+i+",j="+j+",lfet="+rect1.left+" top="+rect1.top+" bottom"+rect1.bottom+" right="+rect1.right);
mPaint.setColor(Color.DKGRAY);
canvas.drawRect(rect1, mPaint);
}
}
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
postInvalidate();
}
}
}
}
Powiązane problemy
- 1. Go alternatywą dla Pythona loop.last
- 2. Alternatywą dla alternatywnego źródła dla dewelopera borlanda
- 3. alternatywą strdup
- 4. alternatywą setup.py
- 5. Czy angularJS jest alternatywą dla JSF?
- 6. Mac alternatywą dla studia zarządzania serwerem SQL?
- 7. Błąd: brak alternatywą na wejściu 'dla' Python
- 8. co jest alternatywą dla password_hash() dla (PHP 5 <5.5.0)?
- 9. Swift alternatywą performSelectorOnMainThread
- 10. C++ alternatywą perror()
- 11. pakiet chroniony alternatywą w kotlinie
- 12. Online HTML/CSS/JavaScript uczenie alternatywą dla w3schools?
- 13. Co jest najnowszą i najlepszą alternatywą dla Flash?
- 14. Co jest dobrą alternatywą PHP do Timthumb do tworzenia miniaturek?
- 15. Co jest dobrą alternatywą dla Firebase do zarządzania użytkownikami, a konkretniej do Pythona?
- 16. Co jest alternatywą dla pchu w szybkim tempie?
- 17. Czy SQL Server Compact Edition jest rozsądną alternatywą dla SQLite?
- 18. Co jest dobrą, nieograniczoną alternatywą dla interfejsu API Miejsc Google?
- 19. Co jest dobrą alternatywą do umieszczania haseł w plikach konfiguracyjnych?
- 20. Narzędzia do analizy pamięci/wydajności dla Androida
- 21. Alternatywą dla otwartego źródła dla AddThis AddToAny, ShareThis itp. Dla społecznego zakładki
- 22. Alternatywa dla Androida dla Line2D?
- 23. Biblioteka SNMP dla Androida
- 24. Przełączanie suwaków dla Androida
- 25. Co jest alternatywą dla głównego strumienia w języku Java do ASP.NET/PHP
- 26. Sortowanie ArrayAdapter dla Androida
- 27. Dodaj zdarzenia dotykowe do klasy tabletu VrPanoramaView pakietu SDK dla Androida dla Androida
- 28. Vala dla Androida?
- 29. powiększanie phonegap dla Androida
- 30. Tiffany Framework dla Androida