最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開發(fā)之WebView輸入框提示解決辦法

 更新時間:2016年06月01日 11:14:08   作者:roucheng  
在做webview應(yīng)用時,當(dāng)輸入的文字過多時,輸入的提示箭頭會移動到輸入框外,怎么解決這個問題呢?下面小編給大家介紹Android開發(fā)之WebView輸入框提示解決辦法,一起看看吧

做基于WebView應(yīng)用時,頁面上有一個輸入框,當(dāng)輸入的文字過多時,超過輸入框的行數(shù)時,輸入框能夠滾動,這時間問題來了,輸入的提示箭頭會移動到輸入框外,如何解決這個問題呢,查找chromium源碼如下:

void LoadIfNecessary(jobject context) {
if (loaded_)
return;
loaded_ = true;
TRACE_EVENT0("browser", "HandleResources::Create");
JNIEnv* env = base::Android::AttachCurrentThread();
if (!context)
context = base::android::GetApplicationContext();
left_bitmap_ = CreateSkBitmapFromJavaBitmap(
Java_HandleViewResources_getLeftHandleBitmap(env, context));
right_bitmap_ = CreateSkBitmapFromJavaBitmap(
Java_HandleViewResources_getRightHandleBitmap(env, context));
center_bitmap_ = CreateSkBitmapFromJavaBitmap(
Java_HandleViewResources_getCenterHandleBitmap(env, context));
left_bitmap_.setImmutable();
right_bitmap_.setImmutable();
center_bitmap_.setImmutable();
drawable_horizontal_padding_ratio_ =
Java_HandleViewResources_getHandleHorizontalPaddingRatio(env);
}

這個函數(shù)加載這幾個圖片,在java端,

private static Bitmap getHandleBitmap(Context context, final int[] attrs) {
// TODO(jdduke): Properly derive and apply theme color.
TypedArray a = context.getTheme().obtainStyledAttributes(attrs);
final int resId = a.getResourceId(a.getIndex(0), 0);
final Resources res = a.getResources();
a.recycle();
final Bitmap.Config config = Bitmap.Config.ARGB_8888;
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
options.inPreferredConfig = config;
Bitmap bitmap = BitmapFactory.decodeResource(res, resId, options);
savePic( bitmap);
if (bitmap != null) return bitmap;
// If themed resource lookup fails, fall back to using the Context's
// resources for attribute lookup.
if (res != context.getResources()) {
bitmap = BitmapFactory.decodeResource(context.getResources(), resId, options);
if (bitmap != null) return bitmap;
}
Drawable drawable = getHandleDrawable(context, attrs);
assert drawable != null;
final int width = drawable.getIntrinsicWidth();
final int height = drawable.getIntrinsicHeight();
Bitmap canvasBitmap = Bitmap.createBitmap(width, height, config);
Canvas canvas = new Canvas(canvasBitmap);
drawable.setBounds(0, 0, width, height);
drawable.draw(canvas);
return canvasBitmap;
}

C++中會調(diào)用java中的函數(shù)getHandleBitmap,這個函數(shù)通過 context.getTheme().obtainStyledAttributes 這個函數(shù),從jdk中加載圖片資源,顯示時,通過GetBitmap函數(shù)獲取到圖像信息,通過layer_->SetBitmap( bitmap)設(shè)置顯示的內(nèi)容,函數(shù)如下:

const SkBitmap& GetBitmap(ui::TouchHandleOrientation orientation) {
DCHECK(loaded_);
switch (orientation) {
case ui::TouchHandleOrientation::LEFT:
return left_bitmap_;
case ui::TouchHandleOrientation::RIGHT:
return right_bitmap_;
case ui::TouchHandleOrientation::CENTER:
return center_bitmap_;
case ui::TouchHandleOrientation::UNDEFINED:
NOTREACHED() << "Invalid touch handle orientation.";
};
return center_bitmap_;
}

這么分析下來,想從顯示下手解決這個問題,似乎不太可能,那只有替換圖片資源,而圖像資源是在android.jar包中,還有其他辦法嗎? 分析源碼,

public static Drawable getLeftHandleDrawable(Context context) {
return getHandleDrawable(context, LEFT_HANDLE_ATTRS);
}
public static Drawable getCenterHandleDrawable(Context context) {
return getHandleDrawable(context, CENTER_HANDLE_ATTRS);
}
public static Drawable getRightHandleDrawable(Context context) {
return getHandleDrawable(context, RIGHT_HANDLE_ATTRS);
}

有這幾個圖像id 信息,是不是可以重載呢,于是添加自己的

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme">
<item name="android:textSelectHandleLeft">@drawable/ic_launcher</item>
<item name="android:textSelectHandle">@drawable/aa</item>
<item name="android:textSelectHandleRight">@drawable/ic_launcher</item>
</style>
</resources>

替換掉系統(tǒng)的資源,再添加android:theme="@style/MyTheme" 自己的主題風(fēng)格,問題解決

相關(guān)文章

  • Android實現(xiàn)IP地址輸入框的方法示例代碼

    Android實現(xiàn)IP地址輸入框的方法示例代碼

    輸入框是我們?nèi)粘i_發(fā)中經(jīng)常遇到的一個控件,如果更好的控制輸入框是對用戶體驗很重要的一步,所以下面這篇文章主要給大家介紹了關(guān)于Android如何實現(xiàn)IP輸入框的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • 詳解Android 檢測權(quán)限的三種寫法

    詳解Android 檢測權(quán)限的三種寫法

    這篇文章主要介紹了詳解Android 檢測權(quán)限的三種寫法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • Android中ExpandableListView使用示例詳解

    Android中ExpandableListView使用示例詳解

    這篇文章主要為大家詳細介紹了Android中ExpandableListView使用示例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android APP開發(fā)KML軌跡導(dǎo)出教程示例

    Android APP開發(fā)KML軌跡導(dǎo)出教程示例

    這篇文章主要為大家介紹了Android APP開發(fā)KML軌跡導(dǎo)出教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Android 圖片特效處理的方法實例

    Android 圖片特效處理的方法實例

    Android 圖片特效處理的方法實例,需要的朋友可以參考一下
    2013-03-03
  • Android自定義TimeButton實現(xiàn)倒計時按鈕

    Android自定義TimeButton實現(xiàn)倒計時按鈕

    這篇文章主要為大家詳細介紹了Android自定義TimeButton實現(xiàn)倒計時按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Android仿QQ空間主頁面的實現(xiàn)

    Android仿QQ空間主頁面的實現(xiàn)

    今天模仿安卓QQ空間,打開程序的啟動畫面和導(dǎo)航頁面我就不做了,大家可以模仿微信的那個做一下,很簡單。這次主要做一下主頁面的實現(xiàn),感興趣的朋友可以參考下
    2013-01-01
  • Android根據(jù)輸入銀行卡號判斷屬于哪個銀行

    Android根據(jù)輸入銀行卡號判斷屬于哪個銀行

    這篇文章主要介紹了Android根據(jù)輸入銀行卡號判斷屬于哪個銀行的實現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02
  • Flutter Set存儲自定義對象時保證唯一的方法詳解

    Flutter Set存儲自定義對象時保證唯一的方法詳解

    在Flutter中,Set和List是兩種不同的集合類型,List中存儲的元素可以重復(fù),Set中存儲的元素不可重復(fù),如果想在Set中存儲自定義對象,需要確保對象的唯一性,那么如何保證唯一,接下來小編就給大家詳細的介紹一下
    2023-11-11
  • Android編程監(jiān)聽網(wǎng)絡(luò)連接狀態(tài)改變的方法

    Android編程監(jiān)聽網(wǎng)絡(luò)連接狀態(tài)改變的方法

    這篇文章主要介紹了Android編程監(jiān)聽網(wǎng)絡(luò)連接狀態(tài)改變的方法,基于BroadcastReceiver實現(xiàn)針對網(wǎng)絡(luò)連接狀態(tài)的監(jiān)聽功能,需要的朋友可以參考下
    2017-06-06

最新評論

广昌县| 南靖县| 太康县| 八宿县| 黄大仙区| 东兰县| 临夏县| 固安县| 含山县| 扎兰屯市| 汽车| 阳城县| 丘北县| 黎平县| 屏山县| 凤阳县| 曲松县| 重庆市| 虞城县| 环江| 增城市| 云安县| 黔江区| 佳木斯市| 报价| 连云港市| 久治县| 赣州市| 依兰县| 澄城县| 宾阳县| 乌鲁木齐县| 韩城市| 定兴县| 桂阳县| 河间市| 密山市| 临清市| 和平县| 尉犁县| 离岛区|