Comment sélectionner une tuile particulière lorsque cliqué et gonfler un bitmap sur elle dans tileview android

je montre une grande image en utilisant Tileview en utilisant TileView bibliothèque

maintenant je veux montrer un cercle dans une limite rect quand cliked sur des tuiles particulières.

Comment obtenir sur quelle tuile cliqué? et comment l'afficher BitMmap au-dessus de la tuile?

public class LargeImageTileViewActivity extends TileViewActivity {
    TileView tileView;
    @Override
    public void onCreate( Bundle savedInstanceState ) {

        super.onCreate( savedInstanceState );

        // multiple references
        tileView = getTileView();

        // by disabling transitions, we won't see a flicker of background color when moving between tile sets
        tileView.setTransitionsEnabled( false );

        // size of original image at 100% scale
        tileView.setSize( 2835, 4289 );

        // detail levels
        tileView.addDetailLevel( 1.000f, "tiles/painting/1000/%col%_%row%.jpg");
        tileView.addDetailLevel( 0.500f, "tiles/painting/500/%col%_%row%.jpg");
        tileView.addDetailLevel( 0.250f, "tiles/painting/250/%col%_%row%.jpg");
        tileView.addDetailLevel( 0.125f, "tiles/painting/125/%col%_%row%.jpg");

        // set scale to 0, but keep scaleToFit true, so it'll be as small as possible but still match the container
        tileView.setScale( 0 );

        // let's use 0-1 positioning...
        tileView.defineRelativeBounds( 0, 0, 1,  1 );

        // frame to center
        frameTo( 0.5, 0.5 );
        tileView.addTileViewEventListener( listener );
    }
    private TileViewEventListenerImplementation listener = new TileViewEventListenerImplementation(){
        public void onTap( int x, int y ) {
            SampleCallout callout = new SampleCallout(LargeImageTileViewActivity.this);


            tileView.slideToAndCenter(x, y);
            //Toast.makeText(mContext, "Center " + tempStore.getCenterX() + " " + tempStore.getCenterY(), Toast.LENGTH_SHORT).show();
            tileView.addCallout(callout, x, y, -0.5f, -1.0f);

            callout.transitionIn();
        }
    };
}
18
demandé sur Android Priya 2015-08-12 07:41:34

1 réponses

en fouillant un peu dans la bibliothèque, il me semble que vous ne pourrez pas obtenir la tuile sans modifier le code (vous n'aurez peut-être pas besoin d'obtenir la tuile, voir plus dans l'option 2), c'est faisable cependant car c'est open source, donc vous pouvez faire vos modifications localement et aller de là.

première option:

première modification nécessaire:

Dans https://github.com/moagrius/TileView/blob/master/src/com/qozix/tileview/detail/DetailManager.java

ajouter le code suivant:

public DetailLevel getCurrentDetailLevel() {
    return currentDetailLevel;
}