OriDomi


Ivel.in1.0

Пробвайте да издърпате текста наляво/надясно.

Ivelin
Pavlov


Това е OriDomi. Javascript библиотека за показване на прекрасни ефекти на нагъване на елементи. Може да се ползва за снимки, текст, и всякакви блокове HTML код.

Може да го намерите на:

Oridomi.com

oriDomi в GitHub

Няма коментари

Paralax

Пробвайте сами


Един прекрасен скрипт за 3D виртуализация и следена на мишката, или наклона (при телефоните).
Това е най-доброто нещо, което съм виждал за тази година. Според мен тепърва ще има широко приложение. Може би всеки ще го иска за своя сайт след като го види.
Изработено е на Javascript и се ползва много лесно. Просто трябва да добавите

$('#scene').parallax();

и в елемента с таг #scene може да добавяте дълбочина на обектите, чрез атрибута

data-depth="0.80"

Официална страница: http://wagerfield.github.io/parallax/
GitHub: https://github.com/wagerfield/parallax

Няма коментари

Маркер за позиция и бутон за локация за Android Maps v2

Тъй като не намерих никаква информация в интернет за това. На Български изобщо го няма.
Но ми трябваше да редактирам бутона на Maps v2 за Android LocateMe, както и синия пин с радиуса. Това се постига с setMyLocationEnabled(true).

Ето и моето решение с фрагменти:

Първо добавям ImageButton за бутона при фрагмента за layout на картата (activity_map.xml):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context="android.support.v4.app.FragmentActivity" >

    <fragment
        android:id="@+id/tabs_fragment"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        class="com.bucons.savetime.MyMapFragment" />

    <ImageButton
        android:id="@+id/myLocationButton"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:padding="4dp"
        android:layout_alignParentRight="true"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp" android:scaleType="fitCenter" 
        android:src="@drawable/ic_menu_mylocation"
        android:background="@drawable/map_tile_bg" />

</RelativeLayout>

 

Има ресурси, които трябва да се добавят за да се вижда като картата по подразбиране.
@drawable/ic_menu_mylocation може да вземете  ic_menu_mylocation

а за фона: @drawable/map_tile_bg пак, чрез xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" 
          android:exitFadeDuration="@android:integer/config_shortAnimTime">
     <item android:state_pressed="true">
         <shape android:shape="rectangle">
             <stroke 
                 android:width="1px"
                 android:color="@color/map_tile_bg_stroke_pressed"/>
             <solid android:color="@color/map_tile_bg_solid_pressed"/>
             <corners android:radius="1dp"/>
         </shape>
     </item>
       <item>
         <shape android:shape="rectangle">
             <stroke 
                 android:width="1px" 
                 android:color="@color/map_tile_bg_stroke"/>
             <solid android:color="@color/map_tile_bg_solid"/>
             <corners android:radius="1dp"/>
         </shape>
       </item>
</selector>

Има и цветове:

<color name="map_tile_bg_solid">#aaffffff</color>
<color name="map_tile_bg_stroke">#ffcccccc</color>
<color name="map_tile_bg_solid_pressed">#aaFF9933</color>
<color name="map_tile_bg_stroke_pressed">#ffcccccc</color>

Ето и опростен фрагмент за самата карта:

public class MyMapFragment extends SupportMapFragment {

    //Current location Marker
    private Marker myLocationMarker;

    GoogleMap map = null;

    public MyMapFragment() {
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setUpMapIfNeeded();
        getCurrentLocation();
    }  

    //set the map and set the tile for locate me button
    private void setUpMapIfNeeded() {
        // Do a null check to confirm that we have not already instantiated the map.
        if (map == null) {
            map = getMap();
            // Check if we were successful in obtaining the map.
            if (map != null) {
                //Top right button for go to location
                ImageButton locateMeTile = (ImageButton) getSherlockActivity().findViewById(R.id.myLocationButton);
                locateMeTile.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        getCurrentLocation();
                    }
                });
            }
        }
    }

    //retrieve the current position. Only once
    private void getCurrentLocation() {
        locationManager = (LocationManager) getSherlockActivity().getSystemService(Context.LOCATION_SERVICE);
        Criteria crit = new Criteria();
        String towers = locationManager.getBestProvider(crit, false);

        Location location = locationManager.getLastKnownLocation(towers);

        Double glat = null;
        Double glon = null;
        if(location != null){

            glat = location.getLatitude();
            glon = location.getLongitude();

        }

        CameraPosition pos = new CameraPosition.Builder()
        .target(new LatLng(glat, glon))
        .zoom(10)
        .build();     

        if(pos != null) {
            currLocationChange(pos.target);
            map.animateCamera(CameraUpdateFactory.newCameraPosition(pos));
        } else {
            Toast.makeText(getSherlockActivity(), R.string.main_error, Toast.LENGTH_LONG).show();
        }
    }

    //Add pin to the current Location or move existing
    private void currLocationChange(LatLng loc) {
        if(myLocationMarker != null) {
            myLocationMarker.setPosition(new LatLng(loc.latitude,loc.longitude));
        } else {
            myLocationMarker = map.addMarker(new MarkerOptions()
                    .position(new LatLng(loc.latitude,loc.longitude)));
        }
    }
}

Ако съм изпуснал нещо важно може да ми пишете. При натискане на бутона картата опива при местоположението на човека и постава маркер. Както и при стартиране на апликацията. Идеята е, че маркера може да се стилизира по желание. Както и бутона за локация.

Няма коментари

Обръщане на списък на Lisp. Reverse!

Функция за деструктивно обръщане на списък.
От (1 2 3 4 5) => (5 4 3 2 1).

(define (reverse1 l)
  (if (null? l) '()
     (append (reverse1 (cdr l)) (list (car l)))
))
(define (reverse! l)
   (let ((l1 (reverse1 l)))
     (begin
     (set-cdr! l (cdr l1))
     (set-car! l (car l1))
     )
))
(define l (list 1 2 3))
(reverse! l)
l

Няма коментари

FPDF полезни функции

FPDF е клас на php за изработка на pdf документи. Чрез него може да направите точно каквото пожелаете.
За разлика от конвертирането на HTML към PDF, което не може да се контролира точно как ще се покаже, чрез FPDF имате пълен контрол.

Пълния контрол е свързан с много функции, по-дълго програмиране, но по-добър ефект.

Ето и няколко добри помощни функции, както и трикове за по-лесна употреба и контрол:

Задаване на разстояние между буквите (letter spacing):

function SetCharSpacing( $s_w , $s_l = 0) {
	$this->s_w = $s_w;
	$this->s_l = $s_l;
	$this->_out(
		'BT '.
		sprintf('%.3f Tc ', $this->s_w * $this->k).
		sprintf('%.3f Tw ', $this->s_l * $this->k).
		'ET '
	);
}

Изместване на текущата X, или Y позиция (без текст, без нов ред).

function Spacer($space) {
   $this->SetX($this->x + $space);
}

function SpacerY($space) {
    $this->y += $space;
}

Взимане дължината на реда:

function GetLineWidth() {
    return $this->w - $this->rMargin - $this->x;
}

Текст с булет за листа:

function SimpleListItem($w, $h, $txt, $border=0, $align='J', $fill=false, $listChar = '•') {
   $this->Spacer(6.4);
    $fs = $this->FontSizePt;
    $this->SetFont($this->FontFamily, '', 10);
    $this->Cell(6.4,3.5,$listChar);
    $this->SetFont($this->FontFamily, '', $fs);
    $this->MultiCell($w,$h,$txt,$border,$align,$fill);
}


Чекбокс, който се изразява в квадратче, което може да има тикче. Подобно на HTML chechbox, което се управлява само от една булева променлива

function Checkbox($checked = true) {
    $this->Rect($this->x,$this->y+0.4,4.1,3.8);
    if($checked) {
        $file = "images/checked.png";
        $w=3.5;
        $ax = $this->x+0.2;
        $ay = $this->y+0.6;
        $this->Image($file, $ax, $ay, $w, NULL, $type, $link);
    }
    $this->SetX($this->x + 4.1);
}

Има и други функции и класове, които са доста полезни:
Таблица, http://www.vonderborn.com/extended-tables-with-fpdf.php
HTML код, http://www.fpdf.de/downloads/addons/41/

Няма коментари

  • Страница 3 от 9
  • <
  • 1
  • 2
  • 3
  • 4
  • ...
  • 9
  • >