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();
}
};
}
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;
}