2012-12-27 21 views
5

Şu anda yazdığım program için basit bir görüntü düzenleyiciye ihtiyacım var. Esasen kullanıcı, bir galeriden bir görüntü seçerek bu editöre gider. seçim üzerine resim düzenleyici aktivitesi oluşturulur ve kullanıcı böyle göreli kolaylıkla yukarıda belirtilen işlevi uygulamak başarmış anda yakınlaştırma vb döndürme, parlaklık ayarı,Resim Düzenleyicide Büyük Bitmapleri İşleme

gibi basit düzenleme eylemleri gerçekleştirmek için izin vermelidir. Sorunum, söz konusu resmi dinamik olarak ekleyerek ImageView. Birçoğunuzun bildiği gibi; Binder işlem arabelleği, işlem için devam etmekte olan tüm işlemler tarafından paylaşılan, şu anda 1Mb olan sınırlı bir sabit boyuta sahiptir. Bu yüzden, sadece bitmap'in sıkıştırılmış sürümlerini ImageView'ma yükleyebildim ve bu benim için oldukça büyük bir sorun sunuyor (programım çoğunlukla tabletlerde kullanılmak üzere tasarlandı). Bu konuda önemli araştırmalar yaptım ve bir Bitmap'i birkaç küçük bitmap'e ayrıştırabildiklerini ve BitmapRegionDecoder'u (bu thread'da önerildiği gibi) kullanarak bir bitişik görüntünün yanılsamasını yaratmak için birkaç ImageView'a yerleştirebildiklerini keşfettim. Bu, büyük resimlerin görüntülenmesine başarılı bir şekilde izin verirken, ImageView'un birden çok örneğini kullanarak yakınlaştırma işlevini nasıl uygulayacağımı bilmiyorum. Bunu yapmanın nispeten basit bir yolu var mı?

cevap

3

Görüntü düzenleme özelliğine sahip bir Gelişmiş galeri uygulaması geliştirdikleri bu video from Google I/O'a bakın.

Uygulama here için kaynak kodunu indirebilirsiniz. Resim düzenleme faaliyeti şu şekilde açılır:

Galeri ayrıca resim düzenleme işlevlerini de uygulamaktadır. Kod yararlı olabilir.

3

Bunu denediniz mi? options.inJustDecodeBounds doğru olarak ayarlanmalıdır.

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inJustDecodeBounds = true; 
BitmapFactory.decodeResource(getResources(), R.id.myimage, options); 
int imageHeight = options.outHeight; 
int imageWidth = options.outWidth; 
String imageType = options.outMimeType; 

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

İlgili konular