Commit 4dda6061 authored by wanglei's avatar wanglei

白包接开屏广告和原生高级广告

parent 2bf975b2
...@@ -3,7 +3,20 @@ ...@@ -3,7 +3,20 @@
<component name="deploymentTargetDropDown"> <component name="deploymentTargetDropDown">
<value> <value>
<entry key="app"> <entry key="app">
<State /> <State>
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="adb-3426369207001D6-FYisxI._adb-tls-connect._tcp" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-03-27T10:49:46.632111500Z" />
</State>
</entry> </entry>
</value> </value>
</component> </component>
......
...@@ -28,6 +28,11 @@ ...@@ -28,6 +28,11 @@
android:name="com.google.android.gms.ads.APPLICATION_ID" android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713" /> android:value="ca-app-pub-3940256099942544~3347511713" />
<!-- 广告验证器 -->
<meta-data
android:name="com.google.android.gms.ads.flag.NATIVE_AD_DEBUGGER_ENABLED"
android:value="false" />
<activity <activity
android:name=".kokoInternalstorage.KoInternalkoActivity" android:name=".kokoInternalstorage.KoInternalkoActivity"
...@@ -52,6 +57,7 @@ ...@@ -52,6 +57,7 @@
<activity <activity
android:name=".KokoLaunchActivity" android:name=".KokoLaunchActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity"> tools:ignore="DiscouragedApi,LockedOrientationActivity">
<intent-filter> <intent-filter>
...@@ -63,6 +69,7 @@ ...@@ -63,6 +69,7 @@
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
......
package com.zxhy.fastfilemanagerpro package com.zxhy.fastfilemanagerpro
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.ActivityManager
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
...@@ -16,6 +18,7 @@ import kotlinx.coroutines.delay ...@@ -16,6 +18,7 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
@SuppressLint("CustomSplashScreen") @SuppressLint("CustomSplashScreen")
class KokoLaunchActivity : AppCompatActivity() { class KokoLaunchActivity : AppCompatActivity() {
...@@ -36,8 +39,8 @@ class KokoLaunchActivity : AppCompatActivity() { ...@@ -36,8 +39,8 @@ class KokoLaunchActivity : AppCompatActivity() {
(application as MyApplication).kokoOpenAdManager.adShowComplete = { showed -> (application as MyApplication).kokoOpenAdManager.adShowComplete = { showed ->
if (showed) { if (showed) {
startActivity(Intent(this@KokoLaunchActivity, MainActivity::class.java)) printTaskActivity()
finish() startActivity(Intent(this, MainActivity::class.java))
} else { } else {
lifecycleScope.launch(Dispatchers.Main) { lifecycleScope.launch(Dispatchers.Main) {
while (binding.ProgressBar.progress != 100) { while (binding.ProgressBar.progress != 100) {
...@@ -83,8 +86,20 @@ class KokoLaunchActivity : AppCompatActivity() { ...@@ -83,8 +86,20 @@ class KokoLaunchActivity : AppCompatActivity() {
if (isAdsInitializeCalled.getAndSet(true)) { if (isAdsInitializeCalled.getAndSet(true)) {
return return
} }
MobileAds.initialize(this) {} MobileAds.initialize(this) {
(application as MyApplication).kokoOpenAdManager.isInit = true
}
(application as MyApplication).loadAd(this) (application as MyApplication).loadAd(this)
} }
fun printTaskActivity() {
val activityManager = getSystemService(ACTIVITY_SERVICE) as ActivityManager
val runningTasks = activityManager.getRunningTasks(10)
for (taskInfo in runningTasks) {
val componentName = taskInfo.topActivity
val activityName = componentName!!.className
Log.e("Activity", "Task Activity Name: $activityName")
}
}
} }
\ No newline at end of file
package com.zxhy.fastfilemanagerpro package com.zxhy.fastfilemanagerpro
import android.content.Intent import android.content.Intent
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
...@@ -13,8 +14,16 @@ import androidx.core.view.ViewCompat ...@@ -13,8 +14,16 @@ import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.navigation.findNavController import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.google.android.gms.ads.AdListener
import com.google.android.gms.ads.AdLoader
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.VideoController
import com.google.android.gms.ads.VideoOptions
import com.google.android.gms.ads.nativead.NativeAd
import com.google.android.gms.ads.nativead.NativeAdOptions
import com.google.android.material.navigation.NavigationBarView import com.google.android.material.navigation.NavigationBarView
import com.zxhy.fastfilemanagerpro.databinding.ActivityMainBinding import com.zxhy.fastfilemanagerpro.databinding.ActivityMainBinding
import com.zxhy.fastfilemanagerpro.databinding.AdNativeAdvanceBinding
import com.zxhy.fastfilemanagerpro.kokotools.ActivityLauncher import com.zxhy.fastfilemanagerpro.kokotools.ActivityLauncher
import com.zxhy.fastfilemanagerpro.kokotools.permission.PermissionCheck.storePermissionCheck import com.zxhy.fastfilemanagerpro.kokotools.permission.PermissionCheck.storePermissionCheck
import com.zxhy.fastfilemanagerpro.kokotools.permission.StorePermissionEx.requestStoreFollow import com.zxhy.fastfilemanagerpro.kokotools.permission.StorePermissionEx.requestStoreFollow
...@@ -22,6 +31,7 @@ import com.zxhy.fastfilemanagerpro.kokotools.permission.StorePermissionEx.reques ...@@ -22,6 +31,7 @@ import com.zxhy.fastfilemanagerpro.kokotools.permission.StorePermissionEx.reques
class MainActivity : AppCompatActivity() { class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding private lateinit var binding: ActivityMainBinding
private lateinit var activityLauncher: ActivityLauncher private lateinit var activityLauncher: ActivityLauncher
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
enableEdgeToEdge() enableEdgeToEdge()
...@@ -103,4 +113,10 @@ class MainActivity : AppCompatActivity() { ...@@ -103,4 +113,10 @@ class MainActivity : AppCompatActivity() {
// color_b3000000 权限窗口颜色 // color_b3000000 权限窗口颜色
window.statusBarColor = ContextCompat.getColor(this, colorRes) window.statusBarColor = ContextCompat.getColor(this, colorRes)
} }
companion object {
const val ADMOB_AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
}
} }
\ No newline at end of file
package com.zxhy.fastfilemanagerpro.kokoads
import android.app.Activity
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
import com.google.android.gms.ads.AdListener
import com.google.android.gms.ads.AdLoader
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.VideoController
import com.google.android.gms.ads.VideoOptions
import com.google.android.gms.ads.nativead.NativeAd
import com.google.android.gms.ads.nativead.NativeAdOptions
import com.google.android.gms.ads.nativead.NativeAdView
import com.zxhy.fastfilemanagerpro.databinding.AdNativeAdvanceBinding
object AdNativeAdvanceEx {
fun refreshAd(
activity: Activity,
flAd: FrameLayout,
admobAdUnitId: String,
actionNativeAd: ((nativeAd: NativeAd) -> Unit)? = null,
) {
activity.apply {
val builder = AdLoader.Builder(this, admobAdUnitId)
builder.forNativeAd { nativeAd ->
val activityDestroyed = isDestroyed
if (activityDestroyed || isFinishing || isChangingConfigurations) {
nativeAd.destroy()
return@forNativeAd
}
actionNativeAd?.invoke(nativeAd)
flAd.removeAllViews()
flAd.addView(bindAdNativeAdView(nativeAd, activity.layoutInflater))
}
//静音视频
val videoOptions =
VideoOptions.Builder().setStartMuted(true).build()
val adOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()
builder.withNativeAdOptions(adOptions)
val adLoader = builder.withAdListener(object : AdListener() {}).build()
adLoader.loadAd(AdRequest.Builder().build())
}
}
fun bindAdNativeAdView(
nativeAd: NativeAd,
layoutInflater: LayoutInflater
): NativeAdView {
val adNativeAdvanceBinding = AdNativeAdvanceBinding.inflate(layoutInflater)
adNativeAdvanceBinding.apply {
val nativeAdView = root
nativeAdView.mediaView = adMedia
nativeAdView.headlineView = adHeadline
nativeAdView.bodyView = adBody
nativeAdView.callToActionView = adCallToAction
nativeAdView.iconView = adAppIcon
nativeAdView.priceView = adPrice
nativeAdView.starRatingView = adStars
nativeAdView.storeView = adStore
nativeAdView.advertiserView = adAdvertiser
adHeadline.text = nativeAd.headline
nativeAd.mediaContent?.let { adMedia.mediaContent = it }
if (nativeAd.body == null) {
adBody.visibility = View.INVISIBLE
} else {
adBody.visibility = View.VISIBLE
adBody.text = nativeAd.body
}
if (nativeAd.callToAction == null) {
adCallToAction.visibility = View.INVISIBLE
} else {
adCallToAction.visibility = View.VISIBLE
adCallToAction.text = nativeAd.callToAction
}
if (nativeAd.icon == null) {
adAppIcon.visibility = View.GONE
} else {
adAppIcon.setImageDrawable(nativeAd.icon?.drawable)
adAppIcon.visibility = View.VISIBLE
}
if (nativeAd.price == null) {
adPrice.visibility = View.INVISIBLE
} else {
adPrice.visibility = View.VISIBLE
adPrice.text = nativeAd.price
}
if (nativeAd.store == null) {
adStore.visibility = View.INVISIBLE
} else {
adStore.visibility = View.VISIBLE
adStore.text = nativeAd.store
}
if (nativeAd.starRating == null) {
adStars.visibility = View.INVISIBLE
} else {
adStars.rating = nativeAd.starRating!!.toFloat()
adStars.visibility = View.VISIBLE
}
if (nativeAd.advertiser == null) {
adAdvertiser.visibility = View.INVISIBLE
} else {
adAdvertiser.text = nativeAd.advertiser
adAdvertiser.visibility = View.VISIBLE
}
nativeAdView.setNativeAd(nativeAd)
}
val mediaContent = nativeAd.mediaContent
val vc = mediaContent?.videoController
if (vc != null && mediaContent.hasVideoContent()) {
vc.videoLifecycleCallbacks =
object : VideoController.VideoLifecycleCallbacks() {
override fun onVideoEnd() {
super.onVideoEnd()
}
}
}
return adNativeAdvanceBinding.root
}
}
\ No newline at end of file
...@@ -16,6 +16,7 @@ class KokoOpenAdManager { ...@@ -16,6 +16,7 @@ class KokoOpenAdManager {
private var googleMobileAdsConsentManager: GoogleMobileAdsConsentManager = private var googleMobileAdsConsentManager: GoogleMobileAdsConsentManager =
GoogleMobileAdsConsentManager.getInstance(MyApplication.ApplicationContext) GoogleMobileAdsConsentManager.getInstance(MyApplication.ApplicationContext)
var isInit = false
private var appOpenAd: AppOpenAd? = null private var appOpenAd: AppOpenAd? = null
private var isLoadingAd = false private var isLoadingAd = false
private var isShowingAd = false private var isShowingAd = false
......
...@@ -23,6 +23,7 @@ data class KoFileDatako( ...@@ -23,6 +23,7 @@ data class KoFileDatako(
fun KoFileDatako.loadImageIcon(context: Context, imageView: ImageView) { fun KoFileDatako.loadImageIcon(context: Context, imageView: ImageView) {
when { when {
isEmpty() -> imageView.setImageResource(R.mipmap.qwe_889989111)
isImage() or isVideo() -> imageView.loadImageView(context, toFile()) isImage() or isVideo() -> imageView.loadImageView(context, toFile())
isAudio() -> imageView.setImageResource(R.mipmap.zd_8871110) isAudio() -> imageView.setImageResource(R.mipmap.zd_8871110)
isLog() -> imageView.setImageResource(R.mipmap.zd_001123) isLog() -> imageView.setImageResource(R.mipmap.zd_001123)
...@@ -34,6 +35,10 @@ data class KoFileDatako( ...@@ -34,6 +35,10 @@ data class KoFileDatako(
} }
} }
fun KoFileDatako.isEmpty(): Boolean {
return toFile().length() == 0L
}
fun KoFileDatako.isImage(): Boolean { fun KoFileDatako.isImage(): Boolean {
return name.contains(".jpg") or name.contains(".png") or name.contains(".gif") return name.contains(".jpg") or name.contains(".png") or name.contains(".gif")
} }
......
...@@ -64,6 +64,9 @@ class KoDupFilekoActivity : AppCompatActivity() { ...@@ -64,6 +64,9 @@ class KoDupFilekoActivity : AppCompatActivity() {
} else { } else {
showPermissionSet(true) showPermissionSet(true)
} }
binding.ivBack.setOnClickListener {
finish()
}
} }
......
...@@ -8,9 +8,12 @@ import android.view.LayoutInflater ...@@ -8,9 +8,12 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.google.android.gms.ads.nativead.NativeAd
import com.zxhy.fastfilemanagerpro.MainActivity.Companion.ADMOB_AD_UNIT_ID
import com.zxhy.fastfilemanagerpro.R import com.zxhy.fastfilemanagerpro.R
import com.zxhy.fastfilemanagerpro.databinding.FragmentKoHomekoBinding import com.zxhy.fastfilemanagerpro.databinding.FragmentKoHomekoBinding
import com.zxhy.fastfilemanagerpro.kokoInternalstorage.KoInternalkoActivity import com.zxhy.fastfilemanagerpro.kokoInternalstorage.KoInternalkoActivity
import com.zxhy.fastfilemanagerpro.kokoads.AdNativeAdvanceEx.refreshAd
import com.zxhy.fastfilemanagerpro.kokodup.KoDupFilekoActivity.Companion.DUP_FILE import com.zxhy.fastfilemanagerpro.kokodup.KoDupFilekoActivity.Companion.DUP_FILE
import com.zxhy.fastfilemanagerpro.kokodup.KoDupFilekoActivity.Companion.DUP_IMAGE import com.zxhy.fastfilemanagerpro.kokodup.KoDupFilekoActivity.Companion.DUP_IMAGE
import com.zxhy.fastfilemanagerpro.kokolistfile.KoListFilekoActivity.Companion.EMPTY_FILE import com.zxhy.fastfilemanagerpro.kokolistfile.KoListFilekoActivity.Companion.EMPTY_FILE
...@@ -21,6 +24,9 @@ class KoHomekoFragment : Fragment() { ...@@ -21,6 +24,9 @@ class KoHomekoFragment : Fragment() {
private lateinit var binding: FragmentKoHomekoBinding private lateinit var binding: FragmentKoHomekoBinding
private lateinit var context: Context private lateinit var context: Context
private var currentNativeAd: NativeAd? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
} }
...@@ -73,7 +79,20 @@ class KoHomekoFragment : Fragment() { ...@@ -73,7 +79,20 @@ class KoHomekoFragment : Fragment() {
binding.flStorage.setOnClickListener { binding.flStorage.setOnClickListener {
startActivity(Intent(context, KoInternalkoActivity::class.java)) startActivity(Intent(context, KoInternalkoActivity::class.java))
} }
refreshAd(requireActivity(), binding.flAd, ADMOB_AD_UNIT_ID) {
currentNativeAd?.destroy()
currentNativeAd = it
}
}
override fun onStop() {
super.onStop()
}
override fun onDestroyView() {
super.onDestroyView()
currentNativeAd?.destroy()
} }
} }
\ No newline at end of file
...@@ -9,8 +9,11 @@ import android.view.ViewGroup ...@@ -9,8 +9,11 @@ import android.view.ViewGroup
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import com.google.android.gms.ads.nativead.NativeAd
import com.zxhy.fastfilemanagerpro.MainActivity
import com.zxhy.fastfilemanagerpro.R import com.zxhy.fastfilemanagerpro.R
import com.zxhy.fastfilemanagerpro.databinding.FragmentKoManagerkoBinding import com.zxhy.fastfilemanagerpro.databinding.FragmentKoManagerkoBinding
import com.zxhy.fastfilemanagerpro.kokoads.AdNativeAdvanceEx
import com.zxhy.fastfilemanagerpro.kokogridfile.KoGridFilekoActivity.Companion.IMAGE_FILE import com.zxhy.fastfilemanagerpro.kokogridfile.KoGridFilekoActivity.Companion.IMAGE_FILE
import com.zxhy.fastfilemanagerpro.kokogridfile.KoGridFilekoActivity.Companion.VIDEO_FILE import com.zxhy.fastfilemanagerpro.kokogridfile.KoGridFilekoActivity.Companion.VIDEO_FILE
import com.zxhy.fastfilemanagerpro.kokolistfile.KoListFilekoActivity.Companion.APK_FILE import com.zxhy.fastfilemanagerpro.kokolistfile.KoListFilekoActivity.Companion.APK_FILE
...@@ -27,6 +30,7 @@ class KoManagerkoFragment : Fragment() { ...@@ -27,6 +30,7 @@ class KoManagerkoFragment : Fragment() {
private val viewModel: KoManagerkoViewModel by viewModels() private val viewModel: KoManagerkoViewModel by viewModels()
private lateinit var context: Context private lateinit var context: Context
private lateinit var adapter: KoRecentkoAdapter private lateinit var adapter: KoRecentkoAdapter
private var currentNativeAd: NativeAd? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
...@@ -94,6 +98,24 @@ class KoManagerkoFragment : Fragment() { ...@@ -94,6 +98,24 @@ class KoManagerkoFragment : Fragment() {
adapter.setData(it) adapter.setData(it)
} }
} }
AdNativeAdvanceEx.refreshAd(
requireActivity(),
binding.flAd,
MainActivity.ADMOB_AD_UNIT_ID
) {
currentNativeAd?.destroy()
currentNativeAd = it
}
}
override fun onResume() {
super.onResume()
}
override fun onDestroyView() {
super.onDestroyView()
currentNativeAd?.destroy()
} }
} }
\ No newline at end of file
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
tools:ignore="UseCompoundDrawables"> tools:ignore="UseCompoundDrawables">
<ImageView <ImageView
android:id="@+id/iv_back"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
......
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.ads.nativead.NativeAdView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#FFFFFF"
android:minHeight="50dp"
android:orientation="vertical">
<!-- head内容 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/ad_app_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:adjustViewBounds="true"
android:paddingEnd="5dp"
android:paddingBottom="5dp"
tools:ignore="ContentDescription,RtlSymmetry" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/ad_headline"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#0000FF"
android:textSize="16sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/ad_advertiser"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="bottom"
android:textSize="14sp"
android:textStyle="bold" />
<RatingBar
android:id="@+id/ad_stars"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="true"
android:numStars="5"
android:stepSize="0.5" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<!-- body内容 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/ad_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:textSize="12sp" />
<com.google.android.gms.ads.nativead.MediaView
android:id="@+id/ad_media"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:minHeight="100dp"
android:maxHeight="150dp" />
<LinearLayout
android:padding="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:orientation="horizontal">
<TextView
android:id="@+id/ad_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="5dp"
android:paddingLeft="5dp"
android:paddingEnd="5dp"
android:paddingRight="5dp"
android:textSize="12sp" />
<TextView
android:id="@+id/ad_store"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="5dp"
android:paddingLeft="5dp"
android:paddingEnd="5dp"
android:paddingRight="5dp"
android:textSize="12sp" />
<Button
android:id="@+id/ad_call_to_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
\ No newline at end of file
...@@ -380,8 +380,10 @@ ...@@ -380,8 +380,10 @@
</LinearLayout> </LinearLayout>
<FrameLayout <FrameLayout
android:layout_width="wrap_content" android:id="@+id/fl_ad"
android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
...@@ -390,11 +392,6 @@ ...@@ -390,11 +392,6 @@
app:layout_constraintTop_toBottomOf="@id/ll_2" app:layout_constraintTop_toBottomOf="@id/ll_2"
tools:ignore="UselessLeaf"> tools:ignore="UselessLeaf">
<ImageView
android:layout_width="match_parent"
android:layout_height="140dp"
android:src="@mipmap/a_87890001"
tools:ignore="ContentDescription" />
</FrameLayout> </FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -7,6 +7,10 @@ ...@@ -7,6 +7,10 @@
tools:context=".kokomanager.KoManagerkoFragment"> tools:context=".kokomanager.KoManagerkoFragment">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView <TextView
android:id="@+id/tv_app_name" android:id="@+id/tv_app_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -266,19 +270,19 @@ ...@@ -266,19 +270,19 @@
</LinearLayout> </LinearLayout>
<FrameLayout <FrameLayout
android:layout_width="350dp" android:id="@+id/fl_ad"
android:layout_height="140dp" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_documents"> app:layout_constraintTop_toBottomOf="@id/ll_documents"
tools:ignore="UselessLeaf">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/a_87890001"
tools:ignore="ContentDescription" />
</FrameLayout> </FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </ScrollView>
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment