JavascriptProva

lunedì 12 settembre 2016

Salvataggio codice conversione dp pixel, layer-list, shapes.

Sono riuscito a realizzare delle shapes proporzionate con l'immagine definita programmaticamente, grazie alla formula che converte i dp in pixels.
Opto però per una costruzione programmatica dell'immagine anziché statica come nelle shapes, perché ci sono maggiori possibilità di customizzazione.
Per il momento, salvo il codice per eventuali successivi ripassi e approfondimenti:
public class MainActivity extends AppCompatActivity {

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



        mainLayout=(RelativeLayout)findViewById(R.id.mainLayout);

        LayoutInflater inflater=(LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View view=(View)inflater.inflate(R.layout.inflatabile,null);
        mainLayout.addView(view);
        RelativeLayout.LayoutParams viewParams=(RelativeLayout.LayoutParams)view.getLayoutParams();
        viewParams.height=170;
        viewParams.width=170;




    }

    float dpToPixels(float dp){
        DisplayMetrics metrics= Resources.getSystem().getDisplayMetrics();
        float px=dp*(metrics.densityDpi/160f);
        return Math.round(px);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="12dp">
        <shape
            android:shape="rectangle">

            <solid android:color="#fe888888" />
        </shape>
    </item>
    <item
        android:right="60dp">
        <shape
            android:shape="rectangle">
            <solid android:color="#fe888888" />
        </shape>
    </item>
    <item
        android:top="17dp"
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp">
        <shape
            android:shape="rectangle">

            <solid android:color="#feffff88" />
        </shape>
    </item>
    <item
        android:right="65dp"
        android:left="5dp"
        android:bottom="5dp"
        android:top="5dp">
        <shape
            android:shape="rectangle">
            <solid android:color="#feffff88" />
        </shape>
    </item>
</layer-list>
...e il layout che ha per sfondo la layer list:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/folder">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ETICHETTA"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="17dp"
        android:layout_marginLeft="5dp"/>
</RelativeLayout> 
E riprendo a disegnare a runtime col canvas...

Nessun commento:

Posta un commento