Градиент public void gradient(Graphics g, int red1, int green1, int blue1, int red2, int green2, int blue2, int x_grad, int y_grad, int w_grad, int h_grad) {
redstep = (float) (red2 - red1) / (float) (h_grad);
greenstep = (float) (green2 - green1) / (float) (h_grad);
bluestep = (float) (blue2 - blue1) / (float) (h_grad);
for (int i = 0; i < h_grad + 1; i++) {
g.setColor((int) (red1 + redstep * i), (int) (green1 + greenstep * i), (int) (blue1 + bluestep * i));
g.drawLine(x_grad, y_grad + i, w_grad, y_grad + i);
}
} |
Graphics g - на чем рисуем int red1 , int green1, int blue1 - первый цвет int red2, int green2, int blue2 - второй int x_grad, int y_grad, int w_grad, int h_grad - координаты
Масштабируемый TextView (Android) package com.annimon.widget;
public class ZoomingTextView extends TextView {
private static final int DEFAULT_TEXT_SIZE = 18;
private static final int MINIMAL_TEXT_SIZE = 6, MAXIMAL_TEXT_SIZE = 50;
private static final float MIN_SCALE = MINIMAL_TEXT_SIZE / (float) DEFAULT_TEXT_SIZE;
private static final float MAX_SCALE = MAXIMAL_TEXT_SIZE / (float) DEFAULT_TEXT_SIZE;
private ScaleGestureDetector scaleDetector;
private float scaleFactor;
public ZoomingTextView(Context context) {
super(context);
init(context);
}
public ZoomingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public ZoomingTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
private void init(Context context) {
scaleDetector = new ScaleGestureDetector(context, new ScaleListener());
scaleFactor = 1.0f;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
scaleDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
scaleFactor *= detector.getScaleFactor();
scaleFactor = Math.max(MIN_SCALE, Math.min(scaleFactor, MAX_SCALE));
final int textSize = (int) (scaleFactor * DEFAULT_TEXT_SIZE);
setTextSize(textSize);
return true;
}
}
}
| Данный виджет позволяет масштабировать текст в TextView. По такому же принципу можно сделать масштабируемым любой другой виджет. В layout.xml заменить TextView на com.annimon.widget.ZoomingTextView, а в главный Layout дописать xmlns:app="http://schemas.android.com/apk/res-auto". Пример:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.annimon.widget.ZoomingTextView
android:id="@+id/textView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
|
Проверка наличия связи с Internet (Android) ConnectivityManager connManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo nInfo = connManager.getActiveNetworkInfo();
if (nInfo == null || !nInfo.isConnected()) {
// not connected
} else {
// connected
} | |