Autore Topic: disegnare un xml in una customview  (Letto 704 volte)

Offline AleoxFalco

  • Nuovo arrivato
  • *
  • Post: 27
  • Poi ci penso
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    APC 87-50
  • Sistema operativo:
    Windows 7
disegnare un xml in una customview
« il: 12 Aprile 2013, 09:47:39 CEST »
0
Salve ragazzi.... una domanda sciocca ma che mi sta facendo dannare.

Ho un customview che ho realizzato senza grossi problemi. Tra le tante cose ho questa riga di codice:
Codice (Java): [Seleziona]
canvas.drawBitmap(bmp, 0,0, null);bmp è una bitmap ma ho la necessità di sostituire l'immagine con un file xml che mi sono costruito ad hoc per la mia applicazione. Non so convertire il file xml per farlo funzionare in questo modo. Posto anche questo per completezza di informazioni
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>

 <!--|NEUTRO|-->

        <shape xmlns:android="http://schemas.android.com/apk/res/android"
                android:shape="rectangle">
        <stroke android:width="2dp" android:color="#000000" />
        <corners android:radius="4dp" />
        <gradient android:startColor="#FFFFFF" android:endColor="#D4D4D4"
                android:angle="270" />
</shape>

Qualcuno sa come aiutarmi? non ho voglia di ricostruirmelo via codice nella customview  :D

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:disegnare un xml in una customview
« Risposta #1 il: 12 Aprile 2013, 10:10:25 CEST »
0
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline AleoxFalco

  • Nuovo arrivato
  • *
  • Post: 27
  • Poi ci penso
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    APC 87-50
  • Sistema operativo:
    Windows 7
Re:disegnare un xml in una customview
« Risposta #2 il: 12 Aprile 2013, 11:24:09 CEST »
0
grazie per la risposta. mi sono riletto i due link ma evidentemente qualcosa mi sfugge. Posto una parte del contenuto

Codice (Java): [Seleziona]
Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);

TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);

Ho capito che la risorsa è la mia fonte di partenza,che giustamente viene disegnata impostandola come background. Io invece ho necessità di visualizzare la medesima risorsa tramite canvas visto che il "background" l'ho già usato. Non è possibile convertire direttamente la shape che ho realizzato in un Bitmap, Paint, o qualcos'altro di utilizzabile in un canvas?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:disegnare un xml in una customview
« Risposta #3 il: 12 Aprile 2013, 12:08:53 CEST »
0
grazie per la risposta. mi sono riletto i due link ma evidentemente qualcosa mi sfugge. Posto una parte del contenuto

Codice (Java): [Seleziona]
Resources res = getResources();
Drawable shape = res. getDrawable(R.drawable.gradient_box);

TextView tv = (TextView)findViewByID(R.id.textview);
tv.setBackground(shape);

Ho capito che la risorsa è la mia fonte di partenza,che giustamente viene disegnata impostandola come background. Io invece ho necessità di visualizzare la medesima risorsa tramite canvas visto che il "background" l'ho già usato. Non è possibile convertire direttamente la shape che ho realizzato in un Bitmap, Paint, o qualcos'altro di utilizzabile in un canvas?
scusami ma il secondo link punta a:
Citazione
public void draw (Canvas canvas)

Added in API level 1
Draw in its bounds (set via setBounds) respecting optional effects such as alpha (set via setAlpha) and color filter (set via setColorFilter).

Parameters
canvas   The canvas to draw into
Della classe ShapeDrawable, il codice che hai postato tu non centra niente...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia