В MainActivity.java добавьте следующий код
public class MainActivity extends AppCompatActivity {
public static MainActivity context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
}
public static MainActivity getInstance()
{
return context;
}
}
, используйте этот контекст, вызывая этот метод
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("compass")){
sensorManager.registerListener(MainActivity.getInstance(), compass, SensorManager.SENSOR_DELAY_NORMAL);
}
}
Вы не можете знать ширину битового массива, пока это на самом деле не загружается:
function LoadImage(q)
{
var imageLoader:Loader = new Loader();
var image:URLRequest = new URLRequest("GalleryImages/Album1/"+q+".jpg");
imageLoader.contentLoader.addEventListener(Event.COMPLETE, ImageLoaded);
imageLoader.load(image);
addChild (imageLoader);
...
private function ImageLoaded(e:Event):void
{
var imageLoader:Loader = Loader(e.target.loader);
var bm:Bitmap = Bitmap(imageLoader.content);
var CurrentXLength = bm.width;
....
Alternativly эта ссылка мог бы быть полезным? Не попробовали его самостоятельно...
Для доступа к ширине, необходимо сделать это в функции, присвоенной для обработки События. ЗАВЕРШЕННЫЙ.
"Вы захотите массив, содержащий объекты, которые Вы хотите загрузить. Необходимо, вероятно, загрузить эти данные в XML, таким образом, это динамично и масштабируемо. Однажды данные XML загружается, это должно быть присвоено массиву любым способом, который Вы любите. Причина, что мы должны использовать массив в этой ситуации, скорее затем просто с помощью объекта XML, который является по существу массивом, состоит в том, потому что Вам нужно знание ширины объектов так, чтобы можно было основывать следующие объекты X положений прочь последних объектов X положений плюс его ШИРИНА.
С XML распространено использовать для цикла и просто выполнить итерации через "x" сумму времен. Мы не хотим это в этом случае. Для получения свойства "WIDTH" загруженного актива к этому нужно получить доступ из функции, присвоенной для увольнения, когда загрузчик запускает Событие. ЗАВЕРШЕННЫЙ. После того как изображение завершилось, оно удалит объект из массива, установит переменную относительно lastX и lastWidth, и затем получит следующий объект в массиве и запустится на всем протяжении. В конечном счете массив пуст, и процесс завершен.
Примечание: Я пропущу загрузку XML и просто введу данные в массив сам.
package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
public class DocumentClass extends Sprite
{
private var _array:Array;
private var _lastX:Number;
private var _lastWidth:Number;
public function DocumentClass():void
{
_array = new Array();
//Add Items to an array however you wish. I did it
//this way to make it easier to read on this site.
_array.push({name: "image1", path: "path/to/image1"});
_array.push({name: "image2", path: "path/to/image2"});
_array.push({name: "image3", path: "path/to/image3"});
loadImage();
}
private function loadImage():void
{
if(_array.length > 0)
{
var loader:Loader = new Loader();
addChild(loader);
var request:URLRequest = new URLRequest(_array[0].path); //Loads first item in the array each time.
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
loader.x = _lastX + _lastWidth;
laoder.load(request);
_lastX = loader.x; //We set after so we are ready for the next.
_array.shift(); //Remove the first item from the array.
}
}
function onImageLoaded(e:Event):void
{
_lastWidth = e.target.width;
loadImage(); //Attempt to load another image if the array isn't empty.
}
}
}
Я надеюсь, что это помогает, код не тестируется, но понятие кажется допустимым.
Yeah I used scott's answer but it's worth noting that 'imageLoader.contentLoader' should be 'imageLoader.contentLoaderInfo' in the LoadImage() function. Solved the width prob for me-- thanks mang