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

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
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 МБ.

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

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