我创建了一个标签式活动,我使用android:layout_alignParentTop ="true"设置了位于屏幕顶部的名为android:id ="@ + id/adView"的AD.
运行应用程序后,我发现四个选项卡位于屏幕顶部.如何让AD位于Tab的上方?谢谢!
当前

我希望

activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="SMART_BANNER"
android:layout_alignParentTop="true"
ads:adUnitId="@string/ad_unit_id" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_below="@+id/adView"
android:layout_above="@+id/linearLayout1"
android:paddingTop="12dip"
android:paddingLeft="7dip"
android:paddingRight="7dip"
android:orientation="vertical" >
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/pager"
android:layout_width="wrap_content" android:layout_height="wrap_content"
tools:context=".MainActivity" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:weightSum="4" >
<Button
android:id="@+id/btnClose"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:text="Close" />
</LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
fragment_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$PlaceholderFragment">
<TextView android:id="@+id/section_label1" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello" /> …Run Code Online (Sandbox Code Playgroud) 我尝试从下面的链接测试关于屏幕记录的示例代码,我修改了一些代码以禁用录制音频.
http://www.truiton.com/2015/05/capture-record-android-screen-using-mediaprojection-apis/
我在Android Studio V1.3中测试代码,但是我收到以下错误,文件capture.mp4为空.
我不确定我是否必须在真正的手机上测试代码?你可以帮帮我吗 ?谢谢!
错误信息
09-22 06:41:50.250 2167-2167/? E/AndroidRuntime? FATAL EXCEPTION: main
Process: screencapture.truiton.com.myapplication, PID: 2167
java.lang.RuntimeException: stop failed.
at android.media.MediaRecorder.stop(Native Method)
at screencapture.truiton.com.myapplication.MainActivity.onToggleScreenShare(MainActivity.java:93)
at screencapture.truiton.com.myapplication.MainActivity$1.onClick(MainActivity.java:55)
at android.view.View.performClick(View.java:4780)
at android.widget.CompoundButton.performClick(CompoundButton.java:120)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Run Code Online (Sandbox Code Playgroud)
源代码
package screencapture.truiton.com.myapplication;
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private static final int PERMISSION_CODE = 1;
private int mScreenDensity;
private MediaProjectionManager …Run Code Online (Sandbox Code Playgroud) 我是Kotlin的初学者,我使用代码A来定义一个复杂的类MDetail,并使用代码B来创建一个对象aMDetail1,它可以工作.
但数据结构是太糟糕了扩大,如果我有一个新的数据类如ScreenDef中MDetail 就像代码C,所有旧的代码必须rewriten.
对于包含某些类的复杂类,是否有良好的数据结构?我希望将来数据构建可以轻松扩展!
代码A.
data class BluetoothDef(val Status:Boolean=false)
data class WiFiDef(val Name:String, val Status:Boolean=false)
data class MDetail (
val _id: Long,
val bluetooth: BluetoothDef,
val wiFi:WiFiDef
)
Run Code Online (Sandbox Code Playgroud)
代码B.
var mBluetoothDef1= BluetoothDef()
var mWiFiDef1= WiFiHelper(this).getWiFiDefFromSystem()
var aMDetail1= MDetail(7L,mBluetoothDef1,mWiFiDef1)
Run Code Online (Sandbox Code Playgroud)
代码C.
data class BluetoothDef(val Status:Boolean=false)
data class WiFiDef(val Name:String, val Status:Boolean=false)
data class ScreenDef(val Name:String, val size:Long)
...
data class MDetail (
val _id: Long,
val bluetooth: BluetoothDef,
val wiFi:WiFiDef
val aScreenDef:ScreenDef
...
)
Run Code Online (Sandbox Code Playgroud)
以下代码基于 …
我是 Kotlin 的初学者,我看过一些关于数据类的示例代码,似乎参数都是 val 类型,就像代码 A
我需要改变数据类MSetting的一些值,所以我设计了Code B,你能告诉我Code B是不是好方法?
代码 A
data class MSetting (
val _id: Long,
val name: String,
val createdDate: Long,
val description: String
)
Run Code Online (Sandbox Code Playgroud)
代码 B
data class MSetting (
var _id: Long,
var name: String,
var createdDate: Long,
var description: String
)
Run Code Online (Sandbox Code Playgroud) 以下代码来自"Kotlin for Android Developers",您可以访问https://github.com/antoniolg/Kotlin-for-Android-Developers
为了插入行数据CityForecastTable.NAME,我必须vararg通过源代码传递值 fun SQLiteDatabase.insert
1: 作者做了一个扩展toVarargArray()转换MutableMap<String, Any?>为Pair<String, Any?>,我不知道是否有更好的方法来做到这一点.我需要使用扩展功能吗?
2: 作者必须使用it.value!!代码C中的代码,我不知道代码fun <K, V : Any> Map<K, V?>.toVarargArray(): Array<out Pair<K, V?>> = map({ Pair(it.key, it.value) }).toTypedArray()是否正确?
3:当我插入列包含空值的行数据时,我不知道应用程序是否会崩溃.
import org.jetbrains.anko.db.*
class ForecastDb(private val forecastDbHelper: ForecastDbHelper = ForecastDbHelper.instance,
private val dataMapper: DbDataMapper = DbDataMapper()) : ForecastDataSource {
fun saveForecast(forecast: ForecastList) = forecastDbHelper.use {
//dataMapper.convertFromDomain(forecast) will return CityForecast object
with(dataMapper.convertFromDomain(forecast)) {
insert(CityForecastTable.NAME, *map.toVarargArray())
} …Run Code Online (Sandbox Code Playgroud) 以下图片是应用https://play.google.com/store/apps/details?id=jp.snowlife01.android.clipboard的窗口.我把它命名为主窗口.
似乎主窗口不是普通窗口.它位于其他窗口的顶部,主窗口无法移动.
当我单击主窗口中的最小化按钮时,将显示一个小点图标,可以移动小点图标,单击小点图标时可以恢复主窗口.
我认为小点图标是一个SYSTEM_ALERT_WINDOW,但主窗口怎么样?
图片
我是 Git 和 Github 的初学者,现在我通过在 Android Studio 上单击菜单项 VCS -> Git -> Push... 将更改提交到远程 Github 服务器。
图像是我的 Git 工具栏。只有一些按钮。
我希望 Push 按钮可以显示在主工具栏上,我该怎么办?
顺便说一句,我已经阅读了文章https://code.tutsplus.com/tutorials/working-with-git-in-android-studio--cms-30514,但我在 Android Studio 上找不到图像的步骤.
我在 Android Studio 3.3.1 的项目中使用 Github。
我发现菜单项 Update Project 和 Pull 旁边都有类似的图标。您可以看到图 1,图 2 是更新项目的详细信息。
Android Studio 3.3.1 中关于 Github 的 Update Project 和 Pull 命令有什么不同?
我正在学习CameraX API,CameraXBasic是office 示例代码。
CameraXBasic项目中的CameraFragment.kt显示真实的相机预览。
现在我希望显示负模式预览。如何使用 CameraX API?有示例代码吗?
相机片段.kt
private lateinit var viewFinder: TextureView
private fun bindCameraUseCases() {
// Get screen metrics used to setup camera for full screen resolution
val metrics = DisplayMetrics().also { viewFinder.display.getRealMetrics(it) }
val screenAspectRatio = Rational(metrics.widthPixels, metrics.heightPixels)
Log.d(TAG, "Screen metrics: ${metrics.widthPixels} x ${metrics.heightPixels}")
// Set up the view finder use case to display camera preview
val viewFinderConfig = PreviewConfig.Builder().apply {
setLensFacing(lensFacing)
// We request aspect ratio but no resolution to let …Run Code Online (Sandbox Code Playgroud)