Экриншот не занимает последнее, текущее или обновленное представление (Android)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Экриншот не занимает последнее, текущее или обновленное представление (Android)

Сообщение Anonymous »

Я пытаюсь переключить баннер Adview на ImageView , перед тем, как сделать снимки экрана, чтобы пользователи могли поделиться этим скриншотом с помощью намерения Share.

Код: Выделить всё

public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
adView1 = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID1);
LinearLayout.LayoutParams childParam2 = new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 0.10f);
adView1.setLayoutParams(childParam2);
adView1.loadAd(new AdRequest());
ll.addView(adView1);
setContentView(ll);

myAdView = new ImageView(this);
LinearLayout.LayoutParams childParam1 = new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 0.10f);
myAdView.setLayoutParams(childParam1);

....
View.OnClickListener handler = new  View.OnClickListener() {
public void onClick(View v) {
switch (v.getId()) {
...
case R.id.menu3:
share();
break;
...
}
}
Вот are () function:

Код: Выделить всё

private void share(){
List targetedShareIntents = new ArrayList();
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("*/*");
List resInfo =
this.getPackageManager().queryIntentActivities(intent, 0);

for (ResolveInfo resolveInfo : resInfo) {
........

if (packageName.toLowerCase().contains("twitter")){

targetedShareIntent.setType("*/*");
String location = "file://" + takeScreen(ll);
...
}
...
}
Это Takescreen (View v) function.

Код: Выделить всё

public String takeScreen(View c_view){
ll.removeView(adView1);
ll.addView(myAdView);

// create bitmap screen capture
Bitmap bitmap;
View v1 = c_view.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = v1.getDrawingCache();

String extr = Environment.getExternalStorageDirectory().toString();
File imageFile = new File(extr,  "screen_" + System.currentTimeMillis() + ".jpg");

OutputStream fout = null;

try {
fout = new FileOutputStream(imageFile);
boolean saved = bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fout);
//Log.e("bitmap saved ?", saved + "!");
fout.flush();
fout.close();
MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "Screen", "screen");

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

ll.removeView(myAdView);
ll.addView(adView1);
return imageFile.getPath();
}
Как вы можете видеть, я удаляю Adview и добавляю myadview (imageView) непосредственно перед тем, как снимки экрана будет сделан в функции atscreen () . Adview удаляется, но ImageView не добавляется на экране. видимость. setVisibility (view.gone, view.visible)
Попробого создать растровый карту с холстом вместо GetDrawingCache (думает, что это может быть проблема, связанная Свет здесь? Я полностью в растерянности.

Подробнее здесь: https://stackoverflow.com/questions/234 ... ew-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»